在 Airflow DAG 中导入本地模块(python 脚本)

新手上路,请多包涵

我正在尝试将本地模块(python 脚本)导入到我的 DAG。

目录结构:

 airflow/
├── dag
│   ├── __init__.py
│   └── my_DAG.py
└── script
    └── subfolder
        ├── __init__.py
        └── local_module.py

my_DAG.py 中的示例代码:

 #trying to import from local module
from script.subfolder import local_module

#calling a function in local_module.py
a = some_function()

我在 Airflow 中收到一条错误消息,提示“损坏的 DAG:my_DAG。没有名为“local_module”的模块。

我已将 Airflow 更新到 1.9.0,但这并不能解决问题。

  • 这里的解决方案是什么?
  • 我还在某处读到我可以通过创建一个插件来解决这个问题。谁能指出我该怎么做?

谢谢。

原文由 hotchocolate 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 795
1 个回答

这通常与 Airflow 的配置方式有关。

airflow.cfg 中,确保 airflow_home 中的路径正确设置为 Airflow 目录结构所在的路径。

然后 Airflow 扫描所有子文件夹并填充它们以便找到模块。

否则,只需确保您尝试导入的文件夹位于 Python 路径中: 如何使用 PYTHONPATH

原文由 tobi6 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题