Ubantu 20.04 安装 Mujoco210、mujoco-py、gym及报错办理
1. 安装Mujoco1.1 官网下载Mujoco210安装包
Mujoco2.1.0下载链接
选第一个
https://i-blog.csdnimg.cn/direct/a820ff536be74022a43d26b1080b089c.png
1.2 创建文件夹并解压安装包
mkdir ~/.mujoco
创建好后,点击显示隐蔽文件可以找到https://i-blog.csdnimg.cn/direct/a2ae55a43aa44a499bf1776d85e037e6.png
找到刚刚下载的压缩包所在位置(一样平常在下载目次下),右键选择 在终端打开
tar -zxvf mujoco210-linux-x86_64.tar.gz -C ~/.mujoco
https://i-blog.csdnimg.cn/direct/2c2cecd0e5a6489f816133fc0dd998e6.png
1.3 设置环境变量
gedit ~/.bashrc
在最后一行到场下面代码然后生存退出文档
export LD_LIBRARY_PATH=~/.mujoco/mujoco210/bin 更新环境变量
source ~/.bashrc
https://i-blog.csdnimg.cn/direct/9514f184915d4f2db695eac9bfa10a55.png
这就安装完了。
1.4 测试Mujoco
cd ~/.mujoco/mujoco210/bin
./simulate ../model/humanoid.xml
https://i-blog.csdnimg.cn/direct/3b1032a9b80c488d96429eb663513b8a.png
https://i-blog.csdnimg.cn/direct/a9acd8eab7d045739a5e7369f827c60c.png
出现上图的界面,则mujoco安装乐成。
2. 安装mujoco-py
2.1 创建假造环境
conda create -n ttmujoco python=3.8
conda activate ttmujoco
这里注意python版本不宜太低
https://i-blog.csdnimg.cn/direct/8fdcf6ccb85e4217810020aa4eacaa2b.png
2.2 下载mujoco-py安装包
确保在刚刚创建的假造环境中,输入
git clone https://github.com/openai/mujoco-py.git
2.3 然后依次执行下面的下令
cd ~/mujoco-py #注意换成你自己路径
pip3 install -U 'mujoco-py<2.2,>=2.1'
pip3 install -r requirements.txt
pip3 install -r requirements.dev.txt
python3 setup.py install
2.4 设置环境文件
gedit ~/.bashrc
在最后加上这三句
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/XXX/.mujoco/mujoco210/bin
# XXX 是你的用户名
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so 更新设置
source ~/.bashrc
2.5 测试mujoco-py
2.5.1测试1
在pycharm中新建一个python文件并利用前面刚刚创建的环境(ttmujoco)
输入以下代码
import mujoco_py
import os
mj_path = mujoco_py.utils.discover_mujoco()
xml_path = os.path.join(mj_path, 'model', 'humanoid.xml')
model = mujoco_py.load_model_from_path(xml_path)
sim = mujoco_py.MjSim(model)
print(sim.data.qpos)
#
sim.step()
print(sim.data.qpos)
# [-2.09531783e-192.72130735e-056.14480786e-22 -3.45474715e-06
# 7.42993721e-06 -1.40711141e-04 -3.04253586e-04 -2.07559344e-04
# 8.50646247e-05 -3.45474715e-067.42993721e-06 -1.40711141e-04
#-3.04253586e-04 -2.07559344e-04 -8.50646247e-051.11317030e-04
#-7.03465386e-05 -2.22862221e-05 -1.11317030e-047.03465386e-05
#-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:右键选择“修改运行设置” ,在环境变量这里把提示你少的这个环境变量加进去
https://i-blog.csdnimg.cn/direct/b4fe70beae4944a1877508512b2c8cc6.png
https://i-blog.csdnimg.cn/direct/971668eb82ed42899e1a977f67043961.png
然后发现还是不可..
办理方案3: 关闭pycharm和终端,找到pycharm.sh所在位置,右键然后选择在终端打开,然后输入
./pycharm.sh https://i-blog.csdnimg.cn/direct/4c4d885a7a6242589438057220a244ad.png
参考这里的办理方案,因为我每次都是直接点击桌面图标进入pycharm,好像并没有办理问题,尝试了一下从终端进入,刹时就好起来了!
https://i-blog.csdnimg.cn/direct/7698ba13c7b54867bc06eb6174e2406e.png
最后这样的输出结果就是乐成了。
https://i-blog.csdnimg.cn/direct/2873eabd53b84ccfaf8345ad35db6fe6.png
错误2:
https://i-blog.csdnimg.cn/direct/0e8b0e2198ba44a08e39aefd0bef1fde.png
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版本
pip install cython==3.0.0a10
2.5.2 测试2
下面再试一下文件中自带的例子
首先进入创建的假造环境中
conda activate ttmujoco 切换文件夹
cd ./mujoco-py/examples python body_interaction.py https://i-blog.csdnimg.cn/direct/f63e32d7698643c5ab72adb1dfe5f96c.png
https://i-blog.csdnimg.cn/direct/6678ba53e1a64475a70d90c42d4b836d.png
尝试用pycharm打开运行也是没问题的
https://i-blog.csdnimg.cn/direct/446daa5c28b6480cb31a4aafacd849f3.png
3. 安装gym
3.1 先进入自己创建的假造环境
conda activate ttmujoco 3.2 切换到.mujoco文件夹
cd~/.mujoco/ 3.3 下载gym安装包
git clone https://github.com/openai/gym 3.4 切换到gym文件夹
cd gym 3.5 安装
pip install -e '.' https://i-blog.csdnimg.cn/direct/3e04e32ab5ce4e09abc737336a06972c.png
3.6 报错办理
错误1:error: subprocess-exited-with-error
https://i-blog.csdnimg.cn/direct/6072c74569d840de919c14fd55e3db63.png
办理:
pip uninstall setuptools
pip install setuptools==69.0.0
pip install -e '.' https://i-blog.csdnimg.cn/direct/7e4a30d2d9614a2ba07df800e772809b.png
错误2:error: command 'swig' failed: No such file or directory
https://i-blog.csdnimg.cn/direct/4e21b8a5b93f44c88b0024f5ae74753e.png
办理:
sudo apt install swig
pip install -e '.' https://i-blog.csdnimg.cn/direct/7bc7c5a920cc4ffebc36cb268c13e064.png
3.7 设置环境变量
gedit ~/.bashrc
在最后加上
export PYTHONPATH=~/.mujoco/gym:$PYTHONPATH 更新一下
source ~/.bashrc
完成!
3.8 测试
试了好几篇文章的测试代码都报错,最后终于在这里找到了答案。
直接把2.5.1中测试的代码解释掉,换成下面的代码就可以。
3.8.1 代码1
import gym
env = gym.make('MountainCar-v0', render_mode = 'human')
for i_episode in range(10):
observation = env.reset()
for t in range(100):
env.render()
print(observation)
action = env.action_space.sample()
observation, reward, done, info, _ = env.step(action)
if done:
print("Episode finished after {} timesteps".format(t+1))
break
env.close()
https://i-blog.csdnimg.cn/direct/2698adf97a7f4a57b5710b2d2c5e21c6.png
3.8.2 代码2
import gym
env = gym.make('CartPole-v1', render_mode = "human")
for episode in range(10):
env.reset()
print("Episode finished after {} timesteps".format(episode))
for _ in range(100):
env.render()
env.step(env.action_space.sample())
env.close()
https://i-blog.csdnimg.cn/direct/83a53421c1784dc39552c0fdfa194a90.png
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]