【问题标题】:Python virtualEnv and airflow bash operatorPython virtualEnv 和气流 bash 运算符
【发布时间】: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


【解决方案1】:

PYTHONPATH 是正确的问题。

在运行我的 python 之前,我必须导出正确的路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2019-07-10
    • 2019-05-13
    • 2019-07-09
    • 2023-03-21
    • 1970-01-01
    • 2022-06-24
    相关资源
    最近更新 更多