Ubuntu18安装gym完整版(gym all)

安装的过程比较曲折,虽然安装成功了,现在也没明白到底是什么起了作用让执行不过去的指令突然执行成功了。说说我的过程: 需要用到gym all。

git clone https://github.com/openai/gym.git
#git clone https://github.com/tianheyu927/gym.git  #确切的说,我使用的是这个,这个有个mil分支
									               #如果只是使用gym,请clone上面的链接
cd gym
pip install -e .  #这个会安装基础版的gym,没有安装mujoco、atari等

为了安装完整版gym,需要先手动安装mujoco,这个有证书,需要自己解决。

跳转到mujoco官网,用校邮箱申请一个一年免费使用pro版。
gym需要的版本是mujoco1.5,mujoco提供的最新版本是2.0,我们把1.5和2.0全部下载下来,放到~/.mujoco文件夹,但是要注意,mujoco1.5的文件夹命名为~/.mujoco/mjpro150,2.0的为~/.mujoco/mujoco200。然后把mjkey.txt(你的证书文件)分别放到~/.mujoco文件夹和~/.mujoco/mjpro150/bin、 ~/.mujoco/mujoco200/bin文件夹,官网说的应该不对,如果只是放到~/.mujoco文件夹而不放到bin文件夹,可能会遇到很多错误。

然后,把如下内容添加到 .bashrc 文件中

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mujoco200/bin:~/.mujoco/mjpro150/bin:/usr/local/cuda-10.2/lib64
export MUJOCO_KEY_PATH=~/.mujoco:~/.mujoco/mjpro150/bin:~/.mujoco/mujoco200/bin:$MUJOCO_KEY_PATH

我们验证一下安装的正确性。

cd ~/.mujoco/mjpro150/bin
./simulate

然后把~/.mujoco/mjpro150/model文件夹里面的模型拖到打开的mujoco窗口中。
此即安装成功。

下面安装gym完整版,因为gym完整版的安装文件里,已经包含了mujoco-py,所以我第一次选择了不手动安装mujoco-py,精彩的部分也来了

进入到gym目录,我们查看一下setup.py文件,可以看到里面包含的mujoco-py。

extras = {
  'atari': ['atari_py~=0.2.0', 'Pillow', 'opencv-python'],
  'box2d': ['box2d-py~=2.3.5'],
  'classic_control': [],
  'mujoco': ['mujoco-py>=1.50, <2.0', 'imageio'],
  'robotics': ['mujoco-py>=1.50, <2.0', 'imageio'],
}

所以不用手动安装mujoco-py,直接下面的指令

cd ~/gym
pip install -e '.[all]'

可是,这时候满屏的红色,又是build future 失败,又是gcc错误的,谷歌也没找到几个可以解决问题的途径。

,手动安装mujoco-py,再把gym的setup.py里面的mujoco-py删除。

关于手动安装mujoco-py,按照mujoco-py的官网github来安,同样是错误一片,所以我找到了这个博客。
setting up mujoco
因为那个博主clone的是1.5版本的mujoco-py,但是现在直接clone就是2.0版本的mujoco-py,不管他。但是在自己的这安装的时候和那个博主的文章有些区别,主要就是LD_PRELOAD的设置,这个要自己搜索一下自己电脑上那两个文件的位置。我把全部的步骤整理在下面:

git clone https://github.com/openai/mujoco-py.git
#(because pip install did not work)
cd ~/mujoco-py/
sudo apt-get update
sudo apt-get install patchelf
sudo apt-get install python3 python-dev python3-dev build-essential libssl-dev libffi-dev libxml2-dev libxslt1-dev zlib1g-dev libglew1.5 libglew-dev python-pip
sudo apt-get install libgl1-mesa-dev libgl1-mesa-glx libosmesa6-dev python3-pip python3-numpy python3-scipy 
sudo pip3 install -r requirements.txt
sudo pip3 install -r requirements.dev.txt
sudo python3 setup.py install  #这个请注意下文的PS
sudo pip3 install gym

PS: you should always be inside ~/mujoco-py folder to run the simulation. If you want to be able to import run it from anywhere then in step 10 instead of sudo python3 setup.py install use sudo python3 setup.py develop

export LD_PRELOAD=~/.mujoco/mujoco200/bin/libglew.so:/usr/lib/x86_64-linux-gnu/libGL.so.1

添加到.bashrc。(这个是我的libglew.so和libGL.so的位置,可以自己搜索一下自己的这两个文件的位置)

TEST
在终端输入python进入python环境,输入如下代码

import gym
env = gym.make('FetchPush-v1')
env.reset()
for _ in range(1000):
  env.render()
  env.step(env.action_space.sample()) # take a random action

Ubuntu18安装gym完整版(gym all)_第1张图片
可以看到成功。在pycharm中测试以上代码的时候,要注意一个小小但很严重的bug 。

既然mujoco-py都安装成功了,剩下的就是安装gym剩下的模块了,atari之类的

cd ~/gym
#本着自带折腾的属性,我没有删除setup.py中的mujoc-py的条目
#而是直接执行了安装指令
pip install -e '.[all]'

惊奇的事情发生了,完美安装,安装程序卸载了mujoco-py 2.0,安装上了1.5,因为setup.py中写的就是>=1.5,<2.0,至此,完美安装。
但是,为什么现在执行全部安装指令就很完美的原因,还是没找到。就让他成为一个悬念把。

你可能感兴趣的:(深度强化学习,RL,DRL,OpenAI,Gym,pytorch,python,gym,all,gym完整,mujoco,mujoco-py)