赞
踩
Ubuntu 18.04 安装 mujoco, mujoco_py 和 gym
cp mjkey.txt ~/.mujoco
cp mjkey.txt ~/.mujoco/mujoco200/bin
cd ~/.mujoco/mujoco200/bin
./simulate ../model/humanoid.xml
7. 可添加环境变量:
gedit ~/.bashrc
// 将以下命令复制到bashrc的最后一行
export LD_LIBRARY_PATH=~/.mujoco/mujoco200/bin${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export MUJOCO_KEY_PATH=~/.mujoco${MUJOCO_KEY_PATH}
本文采用 conda 的方式进行安装。
下载源码:https://github.com/openai/mujoco-py
注意:git clone https://github.com/openai/ mujoco-py.git 这个命令会默认安装网址中最新版本,如下图所示
这个版本是跟 mujoco2.1 版本(mujoco210)是匹配的。所以要到 releases 找到早期版本下载,本文选取 v2.0.2.5 。
解压,并剪切到/home/(自己计算机名字)的文件夹里,改名为 mujoco-py
安装 patchelf (如果权限不够,加 sudo )
curl -o /usr/local/bin/patchelf https://s3-us-west-2.amazonaws.com/openai-sci-artifacts/manual-builds/patchelf_0.9_amd64.elf
sudo chmod +x /usr/local/bin/patchelf
用 conda 创建一个虚拟环境,并安装依赖
$ conda create --name gymlab python=3.7
$ conda activate gymlab
(gymlab) $ cd ~/mujoco-py
(gymlab) $ cp requirements.txt requirements.dev.txt ./mujoco_py
(gymlab) $ cd mujoco_py
(gymlab) $ pip install -r requirements.txt
(gymlab) $ pip install -r requirements.dev.txt
安装
(gymlab) $ cd ~/mujoco-py/vendor
(gymlab) $ ./Xdummy-entrypoint
(gymlab) $ cd ..
(gymlab) $ python setup.py install
sudo apt install python-is-python3
测试
(gymlab) $ python
>>> import mujoco_py
# 第一次导入会加载一些东西,再导入一次就正常了
>>> import mujoco_py
如最后加载 mujoco_py 报错,解决方案如下:
第一步:安装libosmesa6-dev
sudo apt install libosmesa6-dev
安装好libosmesa6-dev,如若运行测试缺少如下包,便执行第二步
第二步:安装patchelf(两个命令选一个就行)
pip install patchelf
sudo apt-get -y install patchelf
pip install cython==3.0.0a10
$ conda activate gymlab
(gymlab) $ cd ~/gym
(gymlab) $ pip install -e '.[all]'
conda install swig
pip install --upgrade setuptools
添加环境变量(~/.bashrc)
gedit ~/.bashrc
# 在末尾添加
export PYTHONPATH=path/to/gym:$PYTHONPATH
测试
进入 gymlab 环境后运行 python 如下代码,会显示程序运行效果。
# 测试代码 1
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()
# 测试代码 2
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()
本文参考文档均以超链接形式在文中给出。
以上内容根据自己理解和实践所写,如有错误,请批评指正。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。