【发布时间】:2021-01-13 14:45:00
【问题描述】:
我遇到了一个奇怪的问题。
我已经部署了一个完整的 Airflow 设置,但是我在使用 BashOperator 运行 python 脚本时遇到了问题
我的 dag 看起来像这样:
from datetime import datetime
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
import pendulum
dag = DAG('ext_pipeline_import', description='Pipeline d''import des données extranet ', schedule_interval='00 04 * * *', start_date=pendulum.datetime(year=2020, month=3, day=20,tzinfo='Europe/Paris'),catchup=False)
t2 = BashOperator(
task_id='t2',
bash_command="customPython /data/airflow/dags/project/pyhton_src/myscript.py ",
dag=dag
)
t2
并且它会在 customPython 中的模块上导入失败。
如果我直接在终端中运行customPython /data/airflow/dags/project/pyhton_src/myscript.py,它的效果就像一个魅力。知道发生了什么吗? customPython 指的是一个工作的 python virtualenv
【问题讨论】:
-
“部署”是什么意思?如果您遇到 ImportErrors,您就知道您缺少模块。要么您使用了错误的 python 环境,要么该模块未安装在环境中。将
print(sys.executable)添加到脚本顶部。这将告诉你你正在使用什么 python。您还可以检查sys.path以获取检查模块的路径。 -
它需要一个好的,但我的模块不包括在内。路径很好,但导入失败
-
将完全相同的命令发送到 sama 机器上的同一终端效果很好
标签: python virtualenv miniconda airflow