最近因为作业的原因,所以要安装gym[all], 但是这个玩意是真的不好装,中间遇到了一堆的bug,查资料的时候感觉一个能用的都没有,所以最后还是自己写一下,方便后来人少踩点坑。。。
直接安装
pip3 install 'gym[all]'
不出意外的话,这里会报错,卡在了mujuco-py的安装上,就是这个逼,因为之前是收费的,所以特立独行,不过现在不收费了,被OpenAI买了,这里给OpenAI点个赞,所以估计之后再安装gym[all]就没啥问题了。所以我们直接安装mujoco-py是不行的,需要手动安装。
安装mujoco
这一步很简单
这里首先要去官网下下载mujoco150, 不要下载其他版本,gym支持这个版本.然后主要文件要放在**/home/usr/**目录下, 也就是 cd ~ 进入的地方
官方网站:https://www.roboti.us/
cd ~
mkdir .mujoco
wget https://www.roboti.us/download/mjpro150_linux.zip
unzip mjpro150_linux.zip
license文件地址:https://www.roboti.us/license.html
然后下载license文件,可以手动下载, 也可以直接wget
wget https://www.roboti.us/file/mjkey.txt
把这个文件复制两份,一份放在.mujoco目录下,另一份放在,mujoco/mjpro150/bin/目录下。
然后就是记得在.bashrc文件里面加一句
LD_LIBRARY_PATH=$HOME/.mujoco/mujoco210/bin pip install mujoco-py
然后重启或者是 source ~/.bashrc使之生效。
然后可以执行一下bin目录下的simulate文件测试一下。
cd .mujoco/mjpro150/bin/
./simulate
##安装mujoco-py
这个地方是最最最恶心的,我真的被这个恶心了一上午。
首先,要下载好对应的150版本的文件,直接到github上弄下来。
wget https://github.com/openai/mujoco-py/archive/refs/tags/1.50.1.0.tar.gz
然后按照GitHub上说的,安装好必备的一些包:sudo apt install libosmesa6-dev libgl1-mesa-glx libglfw3
装好这个时候,再把pip 依赖包装一下
pip install -r requirement.txt
pip install -r requirement.dev.txt
然后就可以手动安装了
pip install -e .
如果没问题的话,这里就结束了,然后继续安装gym[all]就不会报错了。
但是,我这里还遇到了新的问题,就是anaconda 的libstdc++版本不兼容。
报错如下:
ImportError: /home/yangfan/anaconda3/lib/libstdc++.so.6: version `GLIBCXX_3.4.29’ not found (required by /usr/lib/x86_64-linux-gnu/libOSMesa.so.8)
这个纯粹因为anaconda里面gcc版本没有usr/lib里面的高,所以这里简单一点就是找到符号要求的libstdc++.so.6
进行替换。 可以通过string libstdc++.so.6 | grep GLIBCXX
的输出结果看看当前的文件是否满足你的要求。
如果满足,进入到anaconda/lib目录下:
rm ./libstdc++.so.6
ln -s /usr/lib/libstdc++.so.6 ./libstdc++.so.6
先删除,在软连接过来,或者你也可以直接copy过来,都可以。
这样子,最终就没问题了。反正我这里是没问题了,但是可能你还有,那就要发挥你自己的主观能动性了。可能你被恶心一下之后就也OK了。