Airflow v2.3.3调用azure-storage-blob报ModuleNotFoundError求助
解决Airflow调用azure-storage-blob时的ModuleNotFoundError问题
问题背景
环境:Airflow v2.3.3、Python v3.9.13
通过Airflow调用azure-storage-blob库时抛出错误:
ModuleNotFoundError: No module named 'azure'
复现步骤:
- 创建新虚拟环境
- 执行
pip install apache-airflow==2.3.3安装Airflow - 执行
pip install apache-airflow-providers-microsoft-azure==4.1.0安装Azure提供者 - 调用
from azure.storage.blob import BlobClient
额外上下文:pip freeze已显示azure-storage-blob==12.8.1等相关Azure包已安装。
解决办法
1. 确认Airflow使用的Python环境与依赖安装环境一致
执行以下命令查看Airflow的Python信息:
airflow info
找到输出中的Python Version和Python Location,再对比你执行pip命令的Python路径(执行which python或where python)。如果两者路径不同,说明Airflow运行在另一个虚拟环境中,需要将依赖安装到该环境。
2. 使用Airflow自带的pip命令安装依赖
直接通过Airflow的pip工具安装,确保依赖被安装到Airflow实际运行的环境:
airflow pip install azure-storage-blob==12.8.1 apache-airflow-providers-microsoft-azure==4.1.0
3. 重启Airflow服务
如果是分布式部署(有独立的worker节点),安装完依赖后必须重启Airflow的scheduler和worker进程,让新安装的包被加载:
# 重启scheduler airflow scheduler restart # 重启worker(根据你的部署方式调整命令,比如用systemd或docker) airflow worker restart
4. 重新安装并清理冲突依赖
如果存在包版本冲突或损坏,先卸载所有相关Azure包,再重新安装提供者:
# 卸载相关包 pip uninstall -y azure-storage-blob apache-airflow-providers-microsoft-azure azure-* # 重新安装Azure提供者,让它自动管理依赖版本 pip install apache-airflow-providers-microsoft-azure==4.1.0
内容的提问来源于stack exchange,提问作者Dhrumil
相关产品推荐
相关产品推荐

