前言:课题是安全强化学习,跑代码需要用mujoco-py,踩了很多坑,发帖纪录自己的学习历程供大家参考和避雷。
首先默认安装了pycharm,anaconda3,gcc。
版本如下:
python3.10
mujoco200
mujoco-py 2.0.2.8
1.安装mujoco仿真平台
1)在此链接下下载mujoco200+点击license,下载秘钥 Download (roboti.us)
2)在home下建立文件夹 .mujoco, 将下载的mujoco200解压到创建的.mujoco文件夹下,将获得的mjkey.txt放到 .mujoco 和 .mujoco/mujoco200/bin 下。此处要注意下载的mujoco200如果文件名不是“mujoco200”要修改成此名。
3)添加环境变量, 打开~/.bashrc 文件,添加环境变量;
前两句是本来应该添加的环境变量,第三句是按照后续代码报错“缺少环境变量”添加进去的,这一步后续可能会报缺少环境变量,直接把报错里的环境变量复制过来添加上就可以了。
4)测试是否安装成功:
出现以下内容说明mujoco安装成功:
2.安装mujoco-py
1)安装mujoco-py会用到的相关的依赖;
pip install mujoco-py==2.0.2.8
报错基本都是另外的包和mujoco-py的版本不匹配,在此放一下我配成功环境,如果报哪个包的错可以对应改一下该包的版本
2)测试mujoco-py是否安装成功
测试代码;
出现以下结果说明安装成功:
3.安装safety-gm
输入以下代码:
git clone https://github.com/openai/safety-gym.git
cd safety-gym
pip install -e .
输入第一句可能会报错“失败打开该网页”,有两个原因1)safety-gym文件夹不为空;2)网络不好,多试几次,或者换个网。
输入第二句会出现“ailed to build installable wheels for some pyproject.toml based projects (mujoco-py, numpy)”,出现该报错也是安装包版本问题。
我在安装时出现mujoco,numpy无法编译的问题,原因是本地安装safety-gym时,是通过safety-gym中描述的依赖包确定版本一一对应查找安装,我们已经安装好的mujoco-py和numpy与safety-gym中需要的版本不一致。解决方法是找到safety-gym的文件,打开setup,将install-require中的mujoco版本由2.0.2.7改为2.0.2.8,将numpy=~1.17.4,改为numpy==1.23.0。
修改后再运行 pip install -e.
安装好后启动python,输入import safety-gym 进行测试。
输出:
说明safety-gym安装成功。