从 UI 运行时,Prefect ModuleNotFoundError

Car*_*rdh 6 python prefect

我正在关注 Prefect 教程,网址为:https : //docs.prefect.io/core/tutorial/01-etl-before-prefect.html。代码可以从git下载:https : //github.com/PrefectHQ/prefect/tree/master/examples/tutorial

这些教程依赖于飞机库,它是教程下的一个目录。我可以通过终端执行流程:

python 02_etl_...
Run Code Online (Sandbox Code Playgroud)

它完美地执行!

我创建了一个项目,并将 Flow 添加到该项目中。通过 Prefect Server UI,我可以运行 Flow,但它失败并显示错误消息:

状态消息:无法加载和执行 Flow 的环境:ModuleNotFoundError("No module named 'aircraftlib'")

在通过 Prefect Server UI 执行 Flows 时,我应该如何处理依赖关系?

chr*_*ite 9

这部分取决于您使用的 Flow Storage 和 Agent 的类型。由于您使用的是 Prefect Server,我假设您使用的是本地存储 + 本地代理;在这种情况下,您需要确保该aircraftlib目录位于本地可导入 Python PATH 上。有几种方法可以做到这一点:

  • tutorial目录中运行您的Prefect Agent ;您的本地代理的路径将被它提交的流继承
  • 手动将tutorial/目录添加到您的全局 python 路径(我不推荐这样做)
  • tutorial/使用-pCLI 标志将该目录添加到您的代理的路径中;例如:(prefect agent start -p ~/Developer/prefect/examples/tutorial这是我推荐的方法)