gpt4 book ai didi

python - Cloud Composer 上的 Airflow 无法导入模块

转载 作者:行者123 更新时间:2023-12-04 13:36:34 26 4
gpt4 key购买 nike

我正在运行 DAG test_dag.py在我的 Google Cloud Storage Bucket 中按以下方式构建。

gcs-bucket/
dags/
test_dag.py
dependencies/
__init__.py
dependency_1.py
module1/
__init__.py
dependency_2.py

Airflow 检测到 DAG, test_dag.py ,它试图从 depencies/dependency_1.py 导入, (成功导入)和 dependencies/module1/dependency_2.py这给出了错误 Broken DAG: [/home/airflow/gcs/dags/test_dag.py] module 'dependencies' has no attribute 'module1' .

导致此问题的线路是 from dependencies.module1 import dependency_2 .

这似乎向我表明 Cloud Composer 无法从 dependencies/ 中的子目录导入。 ,当我查看他们的依赖文档时 here , example他们给出的目录级别仅比 /dags 低一级(并且只有 1 个文件,而不是一个完整的 python 包)。

不过,这是奇怪的部分——当我在 Airflow 本地运行它(而不是在 Cloud Composer 上)时,它运行成功。所以我不知道为什么我的导入可以在本地工作但不能在 Cloud Composer 上工作。

我也尝试从我的 __init__.py 中导入所有内容文件,这给了我相同的属性错误,并将我的依赖项向上移动到 gcs-bucket/似乎根本找不到它们的地方。

当我打印 __file__从我的 DAG 我得到 /home/airflow/gcs/dags/test_dag.py当我打印 sys.path我得到:
['/usr/local/bin', '/opt/python3.6/lib/python36.zip', '/opt/python3.6/lib/python3.6', '/opt/python3.6/lib/python3.6/lib-dynload', '/opt/python3.6/lib/python3.6/site-packages', '/usr/local/lib/airflow', '/home/airflow/gcs/dags', '/etc/airflow/config', '/home/airflow/gcs/plugins']

我在这里完全不知所措,任何帮助将不胜感激。谢谢你。

编辑:似乎 Cloud Composer 不喜欢依赖项尝试导入其他依赖项(请参阅下面的评论)。想知道是否有办法解决这个问题?

最佳答案

你能加__init__.py吗下 dags/文件夹并试一试?

关于python - Cloud Composer 上的 Airflow 无法导入模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61625709/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com