使用 DagBag 在 Cloud Composer 中测试 dags 时出现 ModuleNotFoundError

问题描述 投票:0回答:0

我目前有一个 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__)))
但我仍然遇到相同的错误。欢迎任何建议。谢谢!

airflow google-cloud-composer airflow-2.x
© www.soinside.com 2019 - 2024. All rights reserved.