Docker容器内执行Airflow Python脚本出现ModuleNotFoundError问题咨询
解决Docker Airflow容器内运行Python脚本找不到airflow模块的问题
问题根源:你执行脚本时用的
/bin/python3和Airflow依赖的Python解释器不是同一个环境。Airflow安装在/usr/local/bin/python对应的Python环境中,/bin/python3的site-packages里没有airflow模块,因此报错。解决方案1:使用Airflow对应的Python解释器运行脚本
直接调用/usr/local/bin/python来执行你的脚本:
/usr/local/bin/python /files/dags/play.py
- 解决方案2:使用Airflow自带的命令执行脚本
Airflow提供了airflow python命令,会自动使用其依赖的Python环境,确保模块能被找到:
airflow python /files/dags/play.py
如果是测试DAG中的任务,也可以用官方推荐的测试命令:
airflow tasks test <你的DAG ID> <任务ID> <执行日期,比如2024-01-01>
- 验证环境一致性(可选)
可以分别查看两个Python解释器的site-packages路径,确认airflow的安装位置:
# 查看Airflow使用的Python的site-packages路径 /usr/local/bin/python -c "import site; print(site.getsitepackages())" # 查看/bin/python3的site-packages路径 /bin/python3 -c "import site; print(site.getsitepackages())"
对比输出会发现,airflow模块仅存在于/usr/local/bin/python对应的路径中。
内容的提问来源于stack exchange,提问作者Rebel AI
相关产品推荐
相关产品推荐

