一种解决方法是在 DAG 文件中设置 sys.path,指定本地 Python 模块所在的路径。例如:
import sys
sys.path.insert(0, "/path/to/local/module")
另一种解决方法是通过 pip 安装模块。在 DAG 文件中,可以使用 BashOperator 或 PythonOperator 执行 pip install 命令。例如:
from airflow.operators.bash_operator import BashOperator
install_my_package = BashOperator(
task_id='install_my_package',
bash_command='pip install my_package',
dag=dag,
)
或者:
from airflow.operators.python_operator import PythonOperator
def install_my_package():
import subprocess
subprocess.call(['pip', 'install', 'my_package'])
install_my_package = PythonOperator(
task_id='install_my_package',
python_callable=install_my_package,
dag=dag,
)
这两种方法都可以解决 Airflow 无法找到本地 Python 模块的问题。