前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python, gym, mujoco, mujoco-py 你们之间的关系让我很想吐槽

python, gym, mujoco, mujoco-py 你们之间的关系让我很想吐槽

作者头像
杨熹
发布2020-03-20 11:16:57
6K3
发布2020-03-20 11:16:57
举报
文章被收录于专栏:杨熹的专栏杨熹的专栏

今天要用 Gym 里面的 LunarLander-v2 环境,结果报错,寻思着重新安装一下,于是一段漫长的连环坑就开始了。


要安装gym:

$ conda install -c akode gym

结果:

Specifications:

  - gym -> python[version='>=3.6,<3.7.0a0']

Your python: python=3.7

于是安装 python 3.6

$ conda search python
$ conda create -n py36 python=3.6 anaconda

激活3.6,进入环境

$ conda activate py36
$ python --version
Python 3.6.10 :: Anaconda, Inc.
$ pip install pip --upgrade
$ git clone https://github.com/openai/mujoco-py
$ pip install -e ./mujoco-py/

结果出错:

   You appear to be missing MuJoCo.  We expected to find the file here: /Users/galphen/.mujoco/mjpro150
    
    This package only provides python bindings, the library must be installed separately.
    
    Please follow the instructions on the README to install MuJoCo
    
        https://github.com/openai/mujoco-py#install-mujoco
    
    Which can be downloaded from the website
    
        https://www.roboti.us/index.html

于是研究着安装mujoco150:

按照这里: 和[官网](https://github.com/openai/mujoco-py#install-mujoco 用学校邮箱,等不及了,先来个30天免费的key吧

具体:

$ mkdir .mujoco
$ cd .mujoco

在这里下载了 150 和 200 两个版本,移动到 .mujoco 文件夹

$ cp -R ~/Desktop/mjpro150 /Users/galphen/.mujoco

$ cd ~/.mujoco
$ git clone https://github.com/openai/mujoco-py.git
$ cd mujoco-py
$ sudo python3 setup.py install

在mujoco网站下载getid,运行

$ cd .mujoco
$ wget https://www.roboti.us/getid/getid_osx
$ chmod -f 711 getid_osx
$ ./getid_osx

将得到的 computer id 输入进官网,获得30天免费的key,会通过邮件发送两个txt

将邮件里的 'mjkey.txt' 复制到 150 和 200 版本的 'bin' subdirectory, 在 .mujoco 也复制了一份

安装好了mujoco,寻思按照官网run一下:

进入python,>>> import mujoco_py 试试,结果出错:

PermissionError: [Errno 13] Permission denied: b'/Users/galphen/opt/anaconda3/envs/py36/lib/python3.6/site-packages/mujoco_py-2.0.2.9-py3.6.egg/mujoco_py/generated/mujocopy-buildlock'

就去改权限:

$ cd /Users/galphen/opt/anaconda3/envs/py36/lib/python3.6/site-packages/
$ cd mujoco_py-2.0.2.9-py3.6.egg/
$ sudo chmod -R 777 ./

这次应该好了吧,还没有

$ cd ~/.mujoco/
$ python
>>> import mujoco_py

还出错:

distutils.errors.CompileError: command '/usr/local/bin/gcc-7' failed with exit status 1

又试着换个版本:

$ cd ~/.mujoco
$ pip install mujoco-py==0.5.7

这次的错误变短了,

mujoco_py.error.MujocoDependencyError: Found your MuJoCo license key but not binaries. Please put your binaries into ~/.mujoco/mjpro131 or set MUJOCO_PY_MJPRO_PATH. Follow the instructions on https://github.com/openai/mujoco-py for setup.

按照这个试一下:

$ export LD_LIBRARY_PATH=$HOME/.mujoco/mujoco150/bin:$LD_LIBRARY_PATH
$ export MUJOCO_PY_MJPRO_PATH=$HOME/.mujoco/mujoco150/
$ export MUJOCO_PY_MJKEY_PATH=$HOME/.mujoco/mjkey.txt

结果出了这个,好在错误短了:

mujoco_py.error.MujocoDependencyError: MUJOCO_PY_MJPRO_PATH path does not exist: /Users/galphen/.mujoco/mujoco150/

因为我本来想把path改在 150,应该是我文件夹名字写错了,先换成 200吧,看看如何:

$ export LD_LIBRARY_PATH=$HOME/.mujoco/mujoco200/bin:$LD_LIBRARY_PATH
$ export MUJOCO_PY_MJPRO_PATH=$HOME/.mujoco/mujoco200/
$ export MUJOCO_PY_MJKEY_PATH=$HOME/.mujoco/mjkey.txt

结果:

mujoco_py.error.MujocoDependencyError: We expected your MUJOCO_PY_MJPRO_PATH final directory to be 'mjpro131', but you provided:  (/Users/galphen/.mujoco/mujoco200/). MuJoCo often changes in incompatible ways between versions, so you must use MuJoCo 1.31. If you're using MuJoCo 1.31 but changed the directory name, simply change the name back.

怎么又要131?gym说它要150的,现在都到200了,结果这个py又要131,好乱呀:

$ cp -R ~/Desktop/mjpro131 /Users/galphen/.mujoco
$ cp -R ~/Desktop/mjpro140 /Users/galphen/.mujoco

$ cp ~/Desktop/mjkey.txt /Users/galphen/.mujoco/mjpro131/bin
$ cp ~/Desktop/mjkey.txt /Users/galphen/.mujoco/mjpro140/bin
mujoco_py.error.MujocoDependencyError: We expected your MUJOCO_PY_MJPRO_PATH final directory to be 'mjpro131', but you provided:  (/Users/galphen/.mujoco/mjpro131/). MuJoCo often changes in incompatible ways between versions, so you must use MuJoCo 1.31. If you're using MuJoCo 1.31 but changed the directory name, simply change the name back.

0.5.7应该是只适用于py2:

Python 2 has been DEPRECATED and removed in 1.50.1.0. Python 2 users can stay on the 0.5 branch. The latest release there is 0.5.7 which can be installed with pip install mujoco-py==0.5.7.

试着按照官网安一下这个版本:

$ pip3 install -U 'mujoco-py<2.1,>=2.0'

出错:

Could not find a version that satisfies the requirement mujoco-py<2.1,>=2.0 (from versions: ) No matching distribution found for mujoco-py<2.1,>=2.0

试试这个:

pip install -U 'mujoco-py<2.1,>=2.0.2.0a1'
ERROR: Could not build wheels for mujoco-py which use PEP 517 and cannot be installed directly

最后知道了原来你们是这么依赖的:

• gym==0.9.3 • mujoco-py==0.5.7 • mujoco 131

Please make sure you are using Python 2.7. I made a conda environment with Python 2.7 and then installed gym 0.9.3

I would suggest to setup following environment: • python v2.7.14 • gym v 0.9.3 • mujoco v131 • mujoco-py v0.5.7

目前这几个什么时候可以步伐一致呢:? • python v3.7 • gym v 0.17.1 • mujoco v200 • mujoco-py v2.0

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档