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

Ubuntu容器构建ruamel.yaml缺python-dev,如何强制使用纯Python实现?

强制ruamel.yaml使用纯Python实现的方法

方案1(适配CI/tox场景,最推荐)

ruamel.yaml内置了官方的环境变量开关,安装前设置RUAMEL_YAML_NO_EXTENSIONS=1即可完全跳过C扩展编译流程,直接使用纯Python实现。
针对你使用tox的构建场景,直接在tox.ini的测试环境配置块中添加如下配置即可:

[testenv]
setenv =
    RUAMEL_YAML_NO_EXTENSIONS=1
# 其余原有配置不需要修改

如果是手动执行安装,使用如下命令即可:

RUAMEL_YAML_NO_EXTENSIONS=1 pip install ruamel.yaml

方案2(解决缓存导致的异常)

如果构建环境存在pip缓存的旧版本构建产物,建议先清理已安装的相关包再重新安装:

pip uninstall -y ruamel.yaml ruamel.yaml.clib
RUAMEL_YAML_NO_EXTENSIONS=1 pip install ruamel.yaml

异常原因说明

你遇到的Python3.8测试正常、Python3.9测试失败的情况,是因为对应版本的ruamel.yaml为Python3.8提供了适配Ubuntu18的预编译wheel包,无需本地编译即可直接安装;而Python3.9没有对应适配的预编译包,默认会触发本地编译C扩展的流程,才会报Python头文件缺失的错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 10:36:01