You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Batch节点运行Python无法识别azure.storage.blob模块如何解决

问题定位步骤

先在Azure Batch计算节点上执行以下校验命令,逐一排查根因:

  • 校验当前Python解释器加载的azure-storage-blob实际版本:
    python3 -c "import azure.storage.blob; print(azure.storage.blob.__version__)"
    90%的同类问题都是版本不匹配导致:BlobServiceClient是azure-storage-blob 12.x大版本才引入的类,如果节点上装的是2.x旧版(甚至是更早的整合包azure-storage),模块下根本不存在这个类,自然抛出属性不存在的异常。
  • 校验模块实际加载路径,排除多Python环境冲突:
    python3 -c "import azure.storage.blob; print(azure.storage.blob.__file__)"
    常见坑是装包时直接调用pip而非对应Python版本的pip,把包装到了Python2或其他虚拟环境路径下,执行脚本时Python3加载的是系统预装的旧版模块,根本不是你手动安装的版本。另外如果用root用户装包、普通用户跑任务,也可能出现权限不足读不到包、加载旧版系统包的问题。
  • 校验是否存在命名冲突:检查脚本所在目录下,有没有自定义命名为azure.py的文件、或是名为azure的自定义文件夹,这类同名文件会被Python优先加载,覆盖官方安装的SDK包。
对应解决方案

根据定位到的问题对应处理即可:

  1. 版本不匹配问题
    先彻底卸载所有旧版本残留,避免多版本冲突:
    pip3 uninstall -y azure-storage azure-storage-blob azure-common
    
    再安装12.x稳定版的SDK:
    python3 -m pip install azure-storage-blob==12.19.0
    装完重新执行版本校验命令,确认版本号为12.x以上再测试脚本。
  2. 多环境冲突问题
    永远用执行脚本的对应Python解释器调用pip装包,比如你用python3 xxx.py跑脚本,装包就用python3 -m pip install <包名>,不要直接敲pip或pip3,避免包装到其他环境。如果是通过Azure Batch启动任务装包,要保证启动任务的执行用户和后续跑任务的用户一致,或者装包时加--user参数安装到当前用户的包目录下。
  3. 命名冲突问题
    把自定义的同名azure.py文件、azure文件夹重命名为非冲突名称,删除脚本目录下的__pycache__缓存文件夹后重新运行脚本。

本地脚本运行正常可直接排除代码语法错误,优先比对本地和节点的azure-storage-blob版本号,两边版本对齐后绝大多数情况都能直接解决问题。

内容的提问来源于stack exchange,提问作者Eli Sailer-Haugland

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:48:19