gpt4 book ai didi

python - 在 Airflow 2 [Cloud Composer] 中导入自定义插件

转载 作者:行者123 更新时间:2023-12-05 02:38:24 24 4
gpt4 key购买 nike

我有这样的目录结构:

airflow_dags
├── dags
│ └── hk
│ └── hk_dag.py
├── plugins
│ └── cse
│ └── operators.py
│ └── cse_to_bq.py
└── test
└── dags
└── dag_test.py

在 Cloud Composer 创建的 GCS 存储桶中,有一个插件文件夹,我在其中上传了 cse 文件夹。

如果我像这样导入插件,现在在我的 hk_dag.py 文件中:

from plugins.cse.operators.cse_to_bq import CSEToBQOperator

并运行我的单元测试,它通过了,但在云作曲器中,我收到了 ModuleNotFoundError: No module named 'plugins' 错误消息。

如果我在我的 hk_dag.py 中导入这样的插件:

from cse.operators.cse_to_bq import CSEToBQOperator

我的单元测试因 ModuleNotFoundError: No module named 'cse' 而失败,但它在 Cloud Composer 中运行良好。

如何解决?

最佳答案

在 Airflow 2.0 中,要导入您的插件,您只需直接从 operators 模块导入即可。

在你的情况下,必须是这样的:

from operators.cse_to_bq import CSEToBQOperator

但在此之前,您必须将文件夹结构更改为:

airflow_dags
├── dags
│ └── hk
│ └── hk_dag.py
├── plugins
│ └── operators
│ └── cse
│ └── cse_to_bq.py
└── test
└── dags
└── dag_test.py

关于python - 在 Airflow 2 [Cloud Composer] 中导入自定义插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69615605/

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