10

我正在关注 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_...

它执行完美!

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

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

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

4

1 回答 1

15

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

  • 在目录中运行您的 Prefect Agent tutorial;然后,您的本地代理的路径将被它提交的流继承
  • 手动将tutorial/目录添加到你的全局 python 路径(我不推荐这个)
  • 使用CLI 标志将tutorial/目录添加到代理的路径;-p例如:(prefect agent start -p ~/Developer/prefect/examples/tutorial这是我推荐的方法)
于 2020-09-15T18:28:20.117 回答