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

使用GCC编译SMAC3依赖pyrfr失败:rapidjson中出现‘只读成员赋值’错误

解决pyrfr编译失败(GCC 13+ 与rapidjson冲突)的uv专属方案

我之前在Docker环境下用uv安装SMAC时也碰到过一模一样的问题,下面是两个完全适配你环境要求的解决方案:

方案1:给uv配置编译标志,自动传递-fpermissive

uv默认会隔离构建环境的环境变量,所以直接设置CXXFLAGS无法传递到编译环节。你需要用uv专属的配置方式来传递编译参数:

临时生效(仅本次安装)

在执行安装命令时,通过uv专属的环境变量传递参数:

UV_BUILD_EXTRA_COMPILE_FLAGS="-fpermissive" uv add smac

永久生效(后续所有编译任务复用)

如果以后还会遇到类似的编译兼容问题,可以把参数加入uv的全局配置:

uv config set build.extra-compile-flags "-fpermissive"

配置完成后,直接执行uv add smac即可,无需每次都手动添加环境变量。

方案2:使用预构建wheel跳过编译环节

如果不想修改编译规则,你可以先安装预构建的pyrfr wheel,再安装SMAC。虽然PyPI上没有官方预构建包,但conda-forge提供了适配Linux x86_64 + Python 3.11的pyrfr 0.9.0预构建wheel:

  1. 查找并下载conda-forge提供的、匹配你Python版本(3.11)和系统架构(Linux x86_64)的pyrfr 0.9.0预构建wheel文件
  2. 用uv安装本地wheel文件:
# 替换成你下载的实际文件名,例如pyrfr-0.9.0-cp311-cp311-manylinux_2_17_x86_64.whl
uv install ./pyrfr-0.9.0-cp311-cp311-manylinux_2_17_x86_64.whl
  1. 再正常安装SMAC:
uv add smac

验证安装成功

安装完成后,运行以下命令确认pyrfr正常工作:

uv run python -c "import pyrfr; print('pyrfr版本:', pyrfr.__version__)"

如果输出pyrfr版本: 0.9.0,就说明安装没问题了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 06:39:42