我正在使用 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'.
尝试通过添加 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;"