gpt4 book ai didi

python - 为什么 docker-compose python 找不到 Airflow 操作符的模块

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:27 24 4
gpt4 key购买 nike

我正在对 docker-airflow postgres etl 进行测试。我的项目结构目前如下所示:

docker-airflow
|
├── Dockerfile
├── __init__.py
├── dags
│   ├── __init__.py
│   ├── pandas_etl.py
│   └── tuto.py
├── docker-compose.yml
├── operators
   ├── __init__.py
   └── pandas_etl_over_postgres_operator.py

将我的 pandas_etl_over_postgres_operator.py 导入到 pandas_etl.py dag 时,我收到一条错误,提示找不到该模块。

pandas_etl.py 导入代码是:


from operators.pandas_etl_over_postgres_operator import PandasETLOverPostgresOperator

我尝试了以下两种替代方案,它们也给出了相同的错误。

from .operators.pandas_etl_over_postgres_operator import PandasETLOverPostgresOperator

from ..operators.pandas_etl_over_postgres_operator import PandasETLOverPostgresOperator

导入在本地工作正常,但当我使用 docker-compose 构建和运行时失败。

最佳答案

请注意,对于 Airflow ,默认情况下,[core]>dags_folder 的值为 /usr/local/airflow/dags 表示 Airflow 将在路径 /usr/local/airflow/dags 处查找 dags。

因此,您的所有 dags 代码都应该位于该文件夹内,因此,您需要更改以下一些内容才能使代码正常工作:

  • docker-compose.yml文件中:
- ./dags:/usr/local/airflow/dags/dags
- ./logs:/usr/local/airflow/dags/logs
- ./operators:/usr/local/airflow/dags/operators
  • pandas_etl.py文件中:
from operators.pandas_etl_over_postgres_operator import PandasETLOverPostgresOperator

希望对你有帮助!

关于python - 为什么 docker-compose python 找不到 Airflow 操作符的模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60033544/

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