我目前有一个 DAG,它在同一文件夹内的不同文件中运行 Python 函数:
dags/
└── analyze/
├── __init__.py
├── helper.py
└── analyze_dag.py
在 DAG 文件中,助手被导入为:
from ...dags.analyze import helper
这很好用。但我正在开发一个测试 DAG,它使用 DagBag 运行一些自定义测试:
models.DagBag(
dag_folder='/home/airflow/gcs/dags'', include_examples=False
)
现在我在运行 testing_dag 时收到 ModuleNotFoundError:
Failed to import: /home/airflow/gcs/dags/analyze_dag_deployment.zip/analyze_dag.py
...
...
in <module> from ...dags.analyze import helper
ModuleNotFoundError: No module named '...dags.analyze'
我想知道为什么当我可以在 Composer 中运行另一个 DAG 时会出现导入错误?
我试图在 analyze_dag 和 testing_dag 中添加
sys.path.insert(0, os.path.abspath(os.path.dirname(__file__)))
但我仍然遇到相同的错误。欢迎任何建议。谢谢!