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

pip安装Azure系列依赖包时出现ruamel.yaml错误问题咨询

问题原因
  • 核心是依赖版本约束冲突与pip批量安装时的依赖解析逻辑问题:
    你指定的azure-cli==2.29.2对ruamel.yaml的版本约束为<=0.17.16,该版本的C扩展代码和Python 3.9、Arch Linux默认的高版本gcc编译器存在兼容性问题,用到了Python3.9已调整的底层API,编译时会触发大量错误。批量安装时pip会优先满足所有包的版本约束,选择该不兼容的旧版本进行编译安装,因此触发报错。
  • 提前单独安装ruamel.yaml仍然失效的原因:
    批量安装azure相关包时,pip会校验依赖版本是否符合要求,如果你提前安装的ruamel.yaml版本不在azure-cli的允许范围内,会被自动卸载并重新安装符合约束的旧版本,因此仍然会触发编译错误。
  • 逐个安装可以成功的原因:
    单独安装ruamel.yaml时,pip没有其他版本约束,会自动选择适配当前Python、编译器环境的最新兼容版本;后续安装azure-cli时,pip会优先尝试复用已安装的高版本ruamel.yaml,仅触发版本不匹配警告,不会强制降级,因此可以安装成功。
解决方案

方案1(最简便,推荐)

安装前设置环境变量禁用ruamel.yaml的C扩展编译,全程使用纯Python实现:

export RUAMEL_YAML_NO_EXT=1
pip install -r requirements.txt

该方案不会影响功能正常使用,仅会小幅降低大体积YAML文件的读写性能,日常使用无感知。

方案2(修改requirements.txt固定配置)

在你的requirements.txt最前面添加如下行,指定安装无C扩展的兼容版本,满足azure-cli的版本要求:

ruamel.yaml<=0.17.16 --global-option="--without-ext"

之后正常执行pip install -r requirements.txt即可。

方案3(保留C扩展性能)

如果你需要ruamel.yaml的C扩展性能,可以调整安装顺序,先单独安装符合要求的兼容版,再安装剩余依赖,强制pip不降级ruamel.yaml:

pip install wheel pip -U
pip install ruamel.yaml==0.17.16
pip install -r requirements.txt --force-reinstall=ruamel.yaml

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 19:06:05