我正在尝试将本地模块(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 许可协议
这通常与 Airflow 的配置方式有关。
在
airflow.cfg
中,确保airflow_home
中的路径正确设置为 Airflow 目录结构所在的路径。然后 Airflow 扫描所有子文件夹并填充它们以便找到模块。
否则,只需确保您尝试导入的文件夹位于 Python 路径中: 如何使用 PYTHONPATH