这里说一下我是怎么一步一步的安装spinning up的安装环境,以及mujoco是怎么安装上的。期间会有一些重复步骤。但是按照我的步骤来,有报错就及时修改,应该是可以正常安装的。
首先你需要先安装anaconda,这里教程我就不再重复了。
-
安装好anaconda后,创建虚拟环境 – spinningup
conda create -n spinningup python=3.7 conda activate spinningup
-
对于Ubuntu系统需要安装
sudo apt-get update && sudo apt-get install libopenmpi-dev
-
之后安装spinning up 环境
git clone https://github.com/openai/spinningup.git # 也可以直接下载压缩包,解压后再cd到spinningup文件夹 cd spinningup pip install -e .
-
此时运行
python -m spinup.run ppo --hid "[32,32]" --env LunarLander-v2 --exp_name installtest --gamma 0.999
会报错
TypeError: Descriptors cannot not be created directly.
If this call came from a _pb2.py file, your generated code is out of date and must be regenerated with protoc >= 3.19.0.
需要重新安装protobuf
, pip3 install --upgrade protobuf==3.20.1
这时再运行 python -m spinup.run ppo --hid "[32,32]" --env LunarLander-v2 --exp_name installtest --gamma 0.999
, 就不会报错了。这时就可以看到这个画面了。
-
安装mujoco
在这个网页中,根据这个指示,下载mujoco210并存到相应的位置----~/.mujoco/mujoco210
然后运行
pip3 install -U 'mujoco-py<2.2,>=2.1'
接着将下面两句添加到 ./bashrc
中,并在终端 source
以下。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hsy/.mujoco/mujoco210/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
这时候运行mujoco官方例程,会报错
Cython.Compiler.Errors.CompileError: /home/hsy/anaconda3/envs/spinningup/lib/python3.7/site-packages/mujoco_py/cymj.pyx
需要安装 pip install "cython<3"
. 再次运行例程,依然会报错
distutils.errors.CompileError: command '/usr/bin/gcc' failed with exit code 1
依次运行
pip3 install --upgrade pip
python3 -m pip install --upgrade setuptools
pip3 install --no-cache-dir --force-reinstall -Iv grpcio==1.23.0
sudo apt install libosmesa6-dev
sudo apt-get install build-essential
sudo apt-get install build-essential libgl1-mesa-dev
sudo apt-get install libglew-dev libsdl2-dev libsdl2-image-dev libglm-dev libfreetype6-dev
sudo apt-get install libglfw3-dev libglfw3
此时再运行官方例程,则可正常输出
6. 安装完成之后,需要再次安装 pip install gym[mujoco,robotics]
,发现会报错
ModuleNotFoundError: No module named 'lockfile'
不用慌,直接 pip install lockfile
。 然后发现要mujoco150, 那就装!到这个网站https://www.roboti.us/download.html,下载mjpro150 linux ,解压放到./mujoco/里,然后把license文件mjkey.txt
也放进去,像我这样。
接着到 ./.bashrc 文件中,把原来添加的换成下面这两行
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/hsy/.mujoco/mjpro150/bin
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
变成这样(注意路径改成你自己的–替换hsy)
然后再运行pip install gym[mujoco,robotics]
。此时如果报错
ImportError: /home/hsy/anaconda3/envs/spinningup/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1)
检查一下
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
没问题,然后再运行
cd /home/用户/anaconda3/envs/spinningup/bin/../lib/
mv libstdc++.so.6 libstdc++.so.6.old
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
pip install gym[mujoco,robotics]
安装完成,这个时候,就可以继续spinning up的学习了!