from snowflake.snowpark import Session - ModuleNotFoundError: No module named 'snowflake' Airflow bash operator

问题描述 投票:0回答:1

我正在使用 bashoperator 从气流中在不同的虚拟环境中执行 python 脚本。这段 python 代码在虚拟环境中单独执行时运行良好,但如果我使用下面的 bash 命令从 Airflow 执行它,它会抛出错误:*from snowflake.snowpark import Session - ModuleNotFoundError: No module named 'snowflake'.

from airflow import DAG
from airflow.utils.dates import days_ago
from airflow.providers.airbyte.operators.airbyte import AirbyteTriggerSyncOperator
from airflow.operators.bash_operator import BashOperator
from airflow.operators.python_operator import PythonOperator

with DAG(dag_id='archive_chbe_s3',
    default_args={'owner': 'airflow'},
    schedule_interval='@daily',
    start_date=days_ago(1)
) as dag:
    
    task_get_last_file_read=BashOperator(
        task_id = "task_get_last_file_read",
        bash_command = "cd /home/avi/miniconda3/envs/avi_snowpark && source activate avi_snowpark && python get_max_date_by_table.py;"
                    )



    task_get_last_file_read

我正在使用 bashoperator 从气流中在不同的虚拟环境中执行 python 脚本。这段 python 代码在虚拟环境中单独执行时运行良好,但如果我使用下面的 bash 命令从 Airflow 执行它,它会抛出错误:*from snowflake.snowpark import Session - ModuleNotFoundError: No module named 'snowflake'.

python airflow virtual virtual-environment
1个回答
0
投票

尝试通过添加 pip install snowflake 来更改 bash:

bash_command = "cd /home/avi/miniconda3/envs/avi_snowpark && source activate avi_snowpark && pip install snowflake && python get_max_date_by_table.py;" 

© www.soinside.com 2019 - 2024. All rights reserved.