【发布时间】:2021-05-06 02:05:55
【问题描述】:
我有一个 Python 脚本,它使用 Pyodbc 与 SQL Server 一起工作,我正在尝试使用 Airflow DAG 运行此脚本:
auction_task = PythonOperator(
task_id='auction_etl',
python_callable=get_auction_data,
dag=dag
)
get_auction_data 函数在另一个文件中:
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”,它就可以正常工作。我不知道我错过了什么。谢谢!
【问题讨论】:
标签: python docker airflow pyodbc