Python 3.10 HTTP触发Azure Function导入BlobClient失败求助
解决思路
1. 移除冲突的旧版存储包
你的requirements.txt里同时包含了旧版azure-storage==0.36.0和新版azure-storage-blob==12.13.0,二者存在命名空间冲突:
- 旧版
azure-storage是整合式存储包,其azure.storage.blob模块结构和新版独立包完全不同,根本没有BlobClient类 - 云端部署时旧包的模块会被优先加载,直接导致新版
BlobClient无法被找到
直接删除requirements.txt中的azure-storage==0.36.0和azure-nspkg==3.0.2(nspkg是旧版Azure包的命名空间兼容包,新版已不再需要)。
2. 强制重新部署并清理缓存
- 本地先执行
pip install -r requirements.txt --upgrade,确保本地依赖与云端待部署版本完全一致 - 部署时添加
--force参数:func azure functionapp publish fappname --build remote --force,强制云端重新构建依赖,避免缓存旧包 - 部署完成后重启Azure Function应用,确保新依赖生效
3. 验证依赖版本兼容性
检查核心依赖版本匹配情况:
azure-storage-blob==12.13.0要求azure-core>=1.26.0,你当前的azure-core==1.30.1完全满足要求- 其他存储相关包(
azure-storage-file-datalake、azure-storage-queue)均为12.x版本,与azure-storage-blob大版本一致,不存在兼容问题
4. 检查云端运行时配置
- 确认Azure Function的运行时设置为Python 3.10,与本地开发环境保持一致
- 进入Azure门户的Function应用→配置→应用程序设置,检查是否存在手动设置的
PYTHONPATH或其他环境变量,避免干扰依赖加载
内容的提问来源于stack exchange,提问作者dev
相关产品推荐
相关产品推荐

