![](/img/trans.png)
[英]Why ConnectionError using python in docker-compose?
[英]Why docker-compose python no module found for airflow operator
我正在對 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 構建和運行時失敗。
請注意,對於氣流,默認情況下, [core]
> dags_folder
的值為/usr/local/airflow/dags
dags_folder
/usr/local/airflow/dags
dags_folder
意味着氣流將在路徑/usr/local/airflow/dags
dags_folder
/usr/local/airflow/dags
dags_folder
。
因此,您所有的 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
希望能幫助到你!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.