![](/img/trans.png)
[英]ModuleNotFoundError: No module named 'pymongo' with Docker and Airflow
[英]Airflow Docker - No module named 'pyodbc'
我有一個 Python 腳本,它使用 Pyodbc 與 SQL 服務器一起工作,我正在嘗試使用 Airflow DAG 運行此腳本:
auction_task = PythonOperator(
task_id='auction_etl',
python_callable=get_auction_data,
dag=dag
)
get_auction_data function 在另一個文件中:
import json
import requests
import datetime
import pyodbc
import time
def get_auction_data(config):
return retrieve_from_api(config)
但我在 UI 中不斷收到此錯誤:
Broken DAG: [/opt/airflow/dags/auctionds/etl/auction_etl.py] Traceback (most recent call last):
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/opt/airflow/dags/auctionds/etl/auction_etl.py", line 9, in <module>
import pyodbc
ModuleNotFoundError: No module named 'pyodbc'
Airflow 在 Docker 容器中運行,我嘗試在工作容器中手動安裝 pyodbc,但沒有成功。 此外,如果我在工作容器內運行 python 命令並運行“import pyodbc”,它就可以正常工作。 我不知道我錯過了什么。 謝謝!
您需要創建一個添加了 pyodbc 的自定義圖像。 您可以在https://airflow.apache.org/docs/docker-stack/build.html#how-to-build-your-own-image中看到一些有關如何執行此操作的示例,包括有關如何添加新 Z23EEEB4347BDD26BFC6B77包。
然后,您必須在 docker 部署中使用該自定義映像(但是您部署容器 - 例如可能是 docker 容器或 K8S)。 您只需要使您的映像可用於部署並確保它使用您的新映像。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.