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

如何修复Azure ML通过ACI部署RandomForest模型时的azureml_run_type_providers加载失败错误

解决Azure ML部署ACI时cryptography版本冲突问题

这是典型的依赖版本冲突导致的问题——你的环境里安装的cryptography是2.9.2版本,但PyJWT的crypto扩展功能要求它至少达到3.3.1版本,直接导致Azure ML加载运行时提供者失败。我给你整理几个实用的解决步骤:

  • 锁定符合要求的依赖版本
    不管你用requirements.txt还是conda.yml管理环境,都要明确指定cryptography的最低版本,同时声明PyJWT的crypto依赖:
    如果是requirements.txt,添加这两行:

    cryptography>=3.3.1
    PyJWT[crypto]
    

    如果是conda配置文件conda.yml,在dependencies节点补充:

    - cryptography>=3.3.1
    - pip:
      - PyJWT[crypto]
    
  • 重建Azure ML部署环境
    别用之前缓存的旧环境,重新基于更新后的依赖文件定义环境对象:

    from azureml.core import Environment
    
    # 基于conda配置文件创建环境
    env = Environment.from_conda_specification(name="rf_deploy_env", file_path="./conda.yml")
    # 或者基于pip requirements创建
    # env = Environment.from_pip_requirements(name="rf_deploy_env", file_path="./requirements.txt")
    

    之后用这个新环境重新部署你的RandomForest服务。

  • 本地提前排查依赖冲突
    可以在本地先运行pip check命令,排查是否有其他包和cryptography存在版本冲突:

    pip check
    

    如果发现有其他包依赖旧版本的cryptography,你需要调整这些包的版本,找到能兼容cryptography>=3.3.1的版本组合,避免部署到ACI后再踩坑。

  • 基于Azure ML基础镜像覆盖依赖
    如果你用的是Azure ML提供的预构建基础镜像(比如sklearn相关镜像),这些镜像可能自带低版本的cryptography,你可以在环境定义里直接覆盖版本:

    from azureml.core import Environment, Workspace
    
    ws = Workspace.from_config()
    # 加载基础镜像环境
    env = Environment.get(workspace=ws, name="AzureML-sklearn-0.24-ubuntu18.04-py37-cpu")
    # 添加覆盖的依赖
    env.python.conda_dependencies.add_pip_package("cryptography>=3.3.1")
    env.python.conda_dependencies.add_pip_package("PyJWT[crypto]")
    

另外建议你先在本地创建相同环境测试,确保所有依赖能正常安装且运行无问题,再推送到ACI部署,能节省不少排查时间。

内容的提问来源于stack exchange,提问作者Welfi KHARROUBI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 10:07:29