[英]Error to create a flow in prefect for python using with and object Flow()
大家好,我正在嘗試使用 python 的 prefect 創建一個流程,但我收到錯誤TypeError: 'fn' must be callable ,我已經安裝了所有的包,我已經嘗試過不同的 IDE 像 vs code 和 colab 但結果是相同的。
代碼是:
from prefect import task, Flow
@task()
def load():
print("Loading data")
with Flow("Hello-world") as flow:
load()
flow.run()
#ERROR
TypeError: 'fn' must be callable
我嘗試將代碼更改為此,但我得到一個不同的錯誤:
from prefect import task, Flow
@task()
def load():
print("Loading data")
with Flow(name = "Hello-world") as flow:
load()
flow.run()
#ERROR
TypeError: Flow.__init__() missing 1 required positional argument: 'fn'
我相信您正在嘗試使用 Prefect 2.0 package 運行 Prefect 1.0 流程。
我能夠使用prefect==1.2.4
很好地運行您的示例,並且能夠使用prefect==2.0.0
重現您的錯誤
這是您的示例使用prefect>=2.0.0
的樣子:
from prefect import flow, task
@task
def load():
print("Loading data")
@flow(name="Hello-world")
def my_flow():
load()
if __name__ == "__main__":
my_flow()
以下是一些關於運行 prefect 2.0 流程的文檔
在 Prefect 2.0 或major 中,我們需要在下一個示例中創建一個流程:
import pandas as pd
import numpy as np
from prefect import flow, task, Flow
@task
def extract():
pass
@task
def transform():
pass
@task
def load():
pass
"""
with Flow("ETL Test") as flow:
extract()
transform()
load()
flow.run()
"""
@flow
def flow_caso():
extract()
transform()
load()
flow_caso()
在評論中,您可以看到我們如何在 Prefect 中創建版本次要為 2.0.0 的流,但在主要版本中,您需要使用裝飾器 @flow 創建 function。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.