已安装apache-airflow-providers-mongo仍遇ModuleNotFoundError求助
解决airflow.providers.mongo.hooks.mongo模块找不到的问题
排查与修复步骤
1. 核对Airflow与Mongo Provider的版本兼容性
apache-airflow-providers-mongo对Airflow版本有明确要求,版本不匹配会导致模块无法识别:
- 若provider版本≥3.0.0,要求Airflow 2.3.0及以上
- 旧版provider对应更低的Airflow版本
执行命令确认当前版本:
# 查看Airflow版本 airflow version # 查看Mongo Provider版本 pip show apache-airflow-providers-mongo
如果版本不兼容,按需调整:
# 例如适配Airflow 2.2.x的版本 pip install apache-airflow-providers-mongo==2.3.3
2. 确认Python环境一致性
你本地pip列表显示已安装,但Airflow可能运行在另一个Python环境(比如虚拟环境、conda环境,或者系统Python与你用的pip不属于同一环境)。
- 查看Airflow使用的Python路径:
airflow info | grep "Python Version"
- 查看当前pip对应的Python路径:
pip --version
如果路径不一致,切换到Airflow对应的环境重新安装:
# 示例:Airflow用python3.8,就用对应pip安装 python3.8 -m pip install apache-airflow-providers-mongo
3. 验证Provider安装路径是否在Python搜索路径中
先找到Mongo Provider的安装位置:
pip show apache-airflow-providers-mongo | grep Location
再检查该路径是否在Airflow所用Python的sys.path里:
# 运行Airflow对应的Python,执行以下代码 import sys print(sys.path)
如果不在,可通过设置PYTHONPATH环境变量添加该路径,或者重新安装包到正确位置。
4. 清理缓存并重新安装
有时候缓存会导致安装异常,执行以下操作:
# 卸载现有包 pip uninstall -y apache-airflow-providers-mongo # 清理pip缓存 pip cache purge # 重新安装 pip install apache-airflow-providers-mongo
5. 直接测试导入
在Airflow使用的Python环境中运行以下代码,验证是否能正常导入:
from airflow.providers.mongo.hooks.mongo import MongoHook print("导入成功")
如果这步成功,说明问题出在DAG的运行配置上;如果失败,继续排查环境配置。
内容的提问来源于stack exchange,提问作者Diwas Poudel
相关产品推荐
相关产品推荐

