Python3.7虚拟环境下MuJoCo 2.0.2.7安装报错(Cython相关)
解决mujoco_py==2.0.2.7在WSL Ubuntu24.04下的编译报错问题
针对你遇到的Cython回调函数异常类型不兼容、需要添加noexcept声明的编译错误,这里提供两个可行的解决思路:
方法一:手动修改mujoco_py源码添加noexcept声明
- 先下载源码包而非直接在线安装:
解压下载得到的pip download mujoco_py==2.0.2.7mujoco_py-2.0.2.7.tar.gz文件。 - 打开解压目录中的
mujoco_py/cymj.pyx文件,找到以下两个函数:
在每个函数的括号末尾添加cdef void c_warning_callback(const char* msg): warnings.warn(msg.decode('utf-8')) cdef void c_error_callback(const char* msg): raise RuntimeError(msg.decode('utf-8'))noexcept,修改后如下:cdef void c_warning_callback(const char* msg) noexcept: warnings.warn(msg.decode('utf-8')) cdef void c_error_callback(const char* msg) noexcept: raise RuntimeError(msg.decode('utf-8')) - 进入解压后的目录,执行本地安装:
pip install .
方法二:通过编译选项适配高版本GCC
Ubuntu24.04自带的GCC 13.x对C++异常检查更严格,你可以通过指定编译标准和关闭相关错误提示来绕过问题:
CFLAGS="-std=c++11 -Wno-error=deprecated-declarations" CXXFLAGS="-std=c++11 -Wno-error=deprecated-declarations" pip install mujoco_py==2.0.2.7
前置检查
确保已经安装了系统层面的依赖库,避免其他编译问题:
sudo apt-get install libosmesa6-dev libgl1-mesa-glx libglfw3
问题原因说明
mujoco_py==2.0.2.7是较旧的版本,没有适配GCC 13.x的严格异常处理检查规则,而你安装的其他新版本mujoco_py已经修复了这个兼容性问题,所以能正常安装。
内容的提问来源于stack exchange,提问作者omegap
相关产品推荐
相关产品推荐

