Ubantu 20.04 安装 Mujoco210、mujoco-py、gym及报错办理

打印 上一主题 下一主题

主题 984|帖子 984|积分 2952

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1. 安装Mujoco

1.1 官网下载Mujoco210安装包

Mujoco2.1.0下载链接
选第一个

1.2 创建文件夹并解压安装包

  1. mkdir ~/.mujoco
复制代码
创建好后,点击显示隐蔽文件可以找到

找到刚刚下载的压缩包所在位置(一样平常在下载目次下),右键选择 在终端打开
  1. tar -zxvf mujoco210-linux-x86_64.tar.gz -C ~/.mujoco
复制代码

1.3 设置环境变量

  1. gedit ~/.bashrc
复制代码
在最后一行到场下面代码然后生存退出文档
  1. export LD_LIBRARY_PATH=~/.mujoco/mujoco210/bin
复制代码
更新环境变量
  1. source ~/.bashrc
复制代码

这就安装完了。
1.4 测试Mujoco

  1. cd ~/.mujoco/mujoco210/bin
复制代码
  1. ./simulate ../model/humanoid.xml
复制代码


出现上图的界面,则mujoco安装乐成。
2. 安装mujoco-py

2.1 创建假造环境

  1. conda create -n ttmujoco python=3.8
  2. conda activate ttmujoco
复制代码
这里注意python版本不宜太低

2.2 下载mujoco-py安装包

确保在刚刚创建的假造环境中,输入
  1. git clone https://github.com/openai/mujoco-py.git
复制代码

2.3 然后依次执行下面的下令

  1. cd ~/mujoco-py #注意换成你自己路径
复制代码
  1. pip3 install -U 'mujoco-py<2.2,>=2.1'
复制代码
  1. pip3 install -r requirements.txt
复制代码
  1. pip3 install -r requirements.dev.txt
复制代码
  1. python3 setup.py install
复制代码
2.4 设置环境文件

  1. gedit ~/.bashrc
复制代码
在最后加上这三句
  1. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
  2. export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/XXX/.mujoco/mujoco210/bin
  3. # XXX 是你的用户名
  4. export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
复制代码
 更新设置
  1. source ~/.bashrc
复制代码
2.5 测试mujoco-py

2.5.1测试1

在pycharm中新建一个python文件并利用前面刚刚创建的环境(ttmujoco)
输入以下代码
  1. import mujoco_py
  2. import os
  3. mj_path = mujoco_py.utils.discover_mujoco()
  4. xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
  5. model = mujoco_py.load_model_from_path(xml_path)
  6. sim = mujoco_py.MjSim(model)
  7. print(sim.data.qpos)
  8. # [0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
  9. sim.step()
  10. print(sim.data.qpos)
  11. # [-2.09531783e-19  2.72130735e-05  6.14480786e-22 -3.45474715e-06
  12. #   7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
  13. #   8.50646247e-05 -3.45474715e-06  7.42993721e-06 -1.40711141e-04
  14. #  -3.04253586e-04 -2.07559344e-04 -8.50646247e-05  1.11317030e-04
  15. #  -7.03465386e-05 -2.22862221e-05 -1.11317030e-04  7.03465386e-05
  16. #  -2.22862221e-05]
复制代码
这个时候可能就要报错了
错误1:
Exception: 
Missing path to your environment variable. 
Current values LD_LIBRARY_PATH=
Please add following line to .bashrc:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/XXX/.mujoco/mujoco210/bin
或者
ERROR: GLEW initalization error: Missing GL version
这两个办理方案同理,只是具体的环境变量名称不一样
错误1的环境变量是:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/wenjingwu/.mujoco/mujoco210/bin
错误2的环境变量是:export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
办理方案1:检查2.4是否把环境变量写进去了,没写的话要加进去
办理方案2:右键选择“修改运行设置” ,在环境变量这里把提示你少的这个环境变量加进去


然后发现还是不可..
办理方案3: 关闭pycharm和终端,找到pycharm.sh所在位置,右键然后选择在终端打开,然后输入
  1. ./pycharm.sh
复制代码

参考这里的办理方案,因为我每次都是直接点击桌面图标进入pycharm,好像并没有办理问题,尝试了一下从终端进入,刹时就好起来了!

最后这样的输出结果就是乐成了。

错误2:

Exception check on 'c_warning_callback' will always require the GIL to be acquired.
Possible solutions:
    1. Declare 'c_warning_callback' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
    2. Use an 'int' return type on 'c_warning_callback' to allow an error code to be returned.
performance hint: /home/wenjingwu/anaconda3/envs/rl_ur5/lib/python3.12/site-packages/mujoco_py/cymj.pyx:104:5: Exception check on 'c_error_callback' will always require the GIL to be acquired.
Possible solutions:
    1. Declare 'c_error_callback' as 'noexcept' if you control the definition and you're sure you don't want the function to raise exceptions.
    2. Use an 'int' return type on 'c_error_callback' to allow an error code to be returned.
Error compiling Cython file:
------------------------------------------------------------
...
    See c_warning_callback, which is the C wrapper to the user defined function
    '''
    global py_warning_callback
    global mju_user_warning
    py_warning_callback = warn
    mju_user_warning = c_warning_callback
                       ^
------------------------------------------------------------ 
办理:更改cython版本
  1. pip install cython==3.0.0a10
复制代码
2.5.2 测试2

下面再试一下文件中自带的例子
首先进入创建的假造环境中
  1. conda activate ttmujoco
复制代码
切换文件夹
  1. cd ./mujoco-py/examples
复制代码
  1. python body_interaction.py
复制代码


尝试用pycharm打开运行也是没问题的

3. 安装gym

3.1 先进入自己创建的假造环境

  1. conda activate ttmujoco
复制代码
3.2 切换到.mujoco文件夹

  1. cd  ~/.mujoco/
复制代码
3.3 下载gym安装包

  1. git clone https://github.com/openai/gym
复制代码
3.4 切换到gym文件夹

  1. cd gym
复制代码
3.5 安装

  1. pip install -e '.[all]'
复制代码

3.6 报错办理

错误1:error: subprocess-exited-with-error

办理:
  1. pip uninstall setuptools
  2. pip install setuptools==69.0.0
  3. pip install -e '.[all]'
复制代码

错误2:error: command 'swig' failed: No such file or directory

办理:
  1. sudo apt install swig
  2. pip install -e '.[all]'
复制代码

3.7 设置环境变量

  1. gedit ~/.bashrc
复制代码
在最后加上
  1. export PYTHONPATH=~/.mujoco/gym:$PYTHONPATH
复制代码
更新一下
  1. source ~/.bashrc
复制代码
完成!
3.8 测试

试了好几篇文章的测试代码都报错,最后终于在这里找到了答案。
直接把2.5.1中测试的代码解释掉,换成下面的代码就可以。
3.8.1 代码1

  1. import gym
  2. env = gym.make('MountainCar-v0', render_mode = 'human')
  3. for i_episode in range(10):
  4.     observation = env.reset()
  5.     for t in range(100):
  6.         env.render()
  7.         print(observation)
  8.         action = env.action_space.sample()
  9.         observation, reward, done, info, _ = env.step(action)
  10.     if done:
  11.         print("Episode finished after {} timesteps".format(t+1))
  12.         break
  13. env.close()
复制代码

3.8.2 代码2

  1. import gym
  2. env = gym.make('CartPole-v1', render_mode = "human")
  3. for episode in range(10):
  4.   env.reset()
  5.   print("Episode finished after {} timesteps".format(episode))
  6.   for _ in range(100):
  7.     env.render()
  8.     env.step(env.action_space.sample())
  9. env.close()
复制代码



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

九天猎人

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表