Ubuntu安装Mujoco报错:gcc编译失败,求解决方案及M1替代方案
一、Ubuntu(aarch64架构)编译错误解决步骤
补全编译依赖
arm架构下编译mujoco_py需要完整的编译工具链和图形库依赖,执行以下命令安装:sudo apt-get update && sudo apt-get install build-essential libgl1-mesa-dev libosmesa6-dev libglew-dev libglfw3-dev调整环境变量与路径
确保Mujoco路径配置正确,若你将mujoco200放在/home/yilin/mujoco目录,需在.bashrc中追加:export MUJOCO_PY_MUJOCO_PATH=/home/yilin/mujoco/mujoco200 export LD_PRELOAD=/usr/lib/aarch64-linux-gnu/libGLEW.so执行
source ~/.bashrc使配置生效。更换兼容版本的mujoco_py
旧版本mujoco_py对aarch64支持不佳,卸载现有版本后安装兼容版本:pip3 uninstall -y mujoco_py pip3 install mujoco-py==2.1.2.14若仍报错,尝试指定编译参数安装:
CFLAGS="-I/usr/include/aarch64-linux-gnu" pip3 install mujoco-py==2.1.2.14
二、Mac M1本地安装Mujoco的可行方案
启用Rosetta 2兼容模式
打开终端,右键选择「显示简介」,勾选「使用Rosetta打开」,重启终端后进行后续操作。安装依赖与Mujoco
安装Rosetta版Homebrew,再安装编译依赖:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" brew install cmake openmpi glew glfw下载mujoco210(对M1支持优于mujoco200),解压到
~/.mujoco/mujoco210,将许可证文件mjkey.txt放入该目录。配置环境变量
在~/.zshrc(或~/.bashrc)中追加:export MUJOCO_PY_MUJOCO_PATH=~/.mujoco/mujoco210 export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:~/.mujoco/mujoco210/bin执行
source ~/.zshrc使配置生效。安装兼容的mujoco-py
指定Cython版本后安装:pip install cython==0.29.24 pip install mujoco-py==2.1.2.14
三、M1设备的Mujoco替代方案
使用官方原生Python绑定(推荐)
官方推出的mujoco包无需编译,原生支持M1,直接安装:pip install mujoco该包API更简洁,文档完善,可完全替代旧版mujoco_py。
切换至PyBullet仿真器
PyBullet对M1原生支持良好,安装简单:pip install pybullet具备与Mujoco类似的物理仿真能力,兼容多数强化学习框架。
Docker容器运行
选择支持aarch64的Ubuntu镜像,预装Mujoco及依赖,直接拉取镜像运行容器即可规避本地编译问题。
内容的提问来源于stack exchange,提问作者Yilin Chen

