ubuntu20.04: MuJoCo安装及Pycharm 环境变量与终端不统一问题解决方法

MuJoCo安装

完全安装MuJoCo需要两个步棸(本文安装的是2.1):

  1. install mujoco engine
  2. install mujoco-py framework

mujoco engine配置

  1. mujoco配置:下载需要安装的mujoco版本(2.1之后,mujoco开源;之前的版本需要另外下载licence以获取使用权,安装之前的版本请参考参考连接
  2. 解压到~/.mujoco文件下,并将解压之后的文件夹重命名为:mujoco210; 最终的路径应为:
  3. ~/.mujoco/mujoco210/ 添加环境变量
# gedit coding 
gedit ~/.bashrc
# 添加路径:
export LD_LIBRARY_PATH=~/.mujoco/mujoco210/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}} 
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mujoco210/bin
# 退出后,刷新环境:
source ~/.bashrc
  1. engine 测试
cd ~/.mujoco/mujoco210/bin && ./simulate ../model/humanoid.xml

出现下图代表成功:
test

mujoco-py framework安装

mujcoo-py的安装我选择从源码安装:

# 下载源码
git clone https://github.com/openai/mujoco-py.git
# 激活conda环境
source activate "you_env_name" // 或者 conda activate "you_conda_name"
(mujoco_lab) ubuntu@ubuntu:~/桌面$ cd ~/mujoco-py
(mujoco_lab) ubuntu@ubuntu:~/桌面$ cp requirements.txt requirements.dev.txt ./mujoco_py
(mujoco_lab) ubuntu@ubuntu:~/桌面$ cd mujoco_py
(mujoco_lab) ubuntu@ubuntu:~/桌面$ pip install -r requirements.txt
(mujoco_lab) ubuntu@ubuntu:~/桌面$ pip install -r requirements.dev.txt

完成后,验证是否安装成功:

pip install -U 'mujoco-py<2.2,>=2.1'

当出现报错时,请参考

最后,添加环境变量

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/x86_64-linux-gnu/libGL.so
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/buduo/.mujoco/mujoco210/bin

最终测试

#打开终端并激活环境
ubuntu@ubuntu:~/桌面$ source activate mujoco_lab
# 打开python命令行,可使用python or python3 ;效果一样
(mujoco_lab) ubuntu@ubuntu:~/桌面$ python
Python 3.8.13 (default, Mar 28 2022, 11:38:47) 
[GCC 7.5.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> 
>>> 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)
[0.  0.  1.4 1.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.  0.
 0.  0.  0.  0.  0.  0.  0.  0.  0.  0. ]
>>> sim.step()
>>> print(sim.data.qpos)
[-1.12164337e-05  7.29847036e-22  1.39975300e+00  9.99999999e-01
  1.80085466e-21  4.45933954e-05 -2.70143345e-20  1.30126513e-19
 -4.63561234e-05 -1.88020744e-20 -2.24492958e-06  4.79357124e-05
 -6.38208396e-04 -1.61130312e-03 -1.37554006e-03  5.54173825e-05
 -2.24492958e-06  4.79357124e-05 -6.38208396e-04 -1.61130312e-03
 -1.37554006e-03 -5.54173825e-05 -5.73572648e-05  7.63833991e-05
 -2.12765194e-05  5.73572648e-05 -7.63833991e-05 -2.12765194e-05]
>>> 

完成以上测试代表,安装完成。
此时,诡异的一幕出现了,在pycharm中运行,会出现 缺少环境依赖的问题(因为我已经修好了,所以没有保存问题图片),大概如下:

```bash
Exception:
Missing path to your environment variable.
Current values LD_LIBRARY_PATH=/usr/local/cuda-11.2/lib64/
Please add following line to .bashrc:
export D_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/buduo/.mujoco/mujoco210/bin

如果,你按照之前的步棸来的话,此时你的~/.bashrc文件,应如下:

# mujoco path 
export LD_LIBRARY_PATH=~/.mujoco/mujoco210/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/.mujoco/mujoco210/bin
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so:/usr/lib/x86_64-linux-gnu/libGL.so
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ubuntu/.mujoco/mujoco210/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/nvidia

所以此时,出现的诡异现象:终端可执行无环境变量问题, pycharm出现环境问题;

MuJoCo安装及Pycharm 环境变量与终端不统一问题解决方法

  1. 找到你的pycharm的安装路径:snap安装的在/home/snap下; 源码安装的一般在/opt下
  2. 修改环境变量
 sudo vim /etc/profile
 #末尾添加如下环境语句
 export PATH=~/Downloads/pycharm-community-你的版本号/bin:$PATH
 #如:export PATH=~/Downloads/pycharm-community-2017.3.3/bin:$PATH
 # 保存并退出
 :wq
 # 重启系统
 reboot 
  1. 电脑重启后,终端输入
pycharm.sh

我换了一个测试代码:

import gym
import mujoco_py
# os.environ.get("LD_LIBRARY_PATH", "")
# env = gym.make("LunarLander-v2", render_mode="human")

env = gym.make('Ant-v4', ctrl_cost_weight=0.1,render_mode="human")
# env = gym.make('InvertedDoublePendulum-v4',render_mode="human")
env.action_space.seed(42)

observation, info = env.reset(seed=42)

for _ in range(10000):
    observation, reward, terminated, truncated, info = env.step(env.action_space.sample())
    print(observation)
    env.render()

    if terminated or truncated:
        observation, info = env.reset()

测试结果如下:
Ant-v4, 测试

最后如果,你阅读了参考链接,也使用了本文的方法,并苦苦挣扎很久也无法解决mujoco在 pycharm中的环境变量问题,那请去用Vscode吧!!!哈哈哈!!!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值