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

安装mujoco_py时出现Cython编译错误求助

解决MuJoCo-Py编译时回调函数类型不兼容问题

问题根源

这个编译错误是因为新版GCC(GCC 7及以上版本)对C异常处理的检查更严格,而mujoco_py的cymj.pyx文件中定义的回调函数未符合现代C的noexcept要求,导致函数指针类型不匹配。

修复步骤

  • 定位cymj.pyx文件
    如果你是通过pip安装的mujoco_py,执行以下命令找到文件位置:

    python3 -c "import mujoco_py; print(mujoco_py.__file__)"
    

    进入输出的目录,找到核心源码文件夹里的cymj.pyx文件。

  • 修改回调函数声明
    打开cymj.pyx,找到报错提示的回调函数定义(通常是日志或消息回调相关的函数),将原来的:

    void (const char *) except * nogil
    

    替换为:

    void (const char *) noexcept nogil
    

    注意要把所有同类型的回调函数声明和实现都做相同修改。

  • 重新编译mujoco_py
    先清理旧编译缓存并卸载原有版本:

    pip uninstall -y mujoco_py
    rm -rf ~/.cache/mujoco_py
    

    再重新安装(强制不使用缓存):

    pip install mujoco_py --no-cache-dir
    

    如果你是从源码安装的,进入mujoco_py目录后执行:

    python setup.py build_ext --inplace
    pip install -e .
    
  • 验证修复效果
    重新运行你的脚本:

    python3 setting_state.py
    

额外提示

  • 建议使用GCC 9或10版本,过高版本可能还会触发其他兼容性问题
  • 替换GLEW版本后,可通过以下命令确认动态链接库路径正确:
    ldconfig -p | grep glew
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 15:18:08