Ubuntu 18.04 安装 mujoco, mujoco_py 和 gym

​Ubuntu 18.04 安装 mujoco, mujoco_py 和 gym

一、安装mujoco

  1. 下载 license :License (现在 license 开源可直接下载Activation key
  2. 官网下载 mujoco200 linux:Downloadmujoco200 linux
  3. 在home下建立.mujoco文件夹: mkdir ~/.mujoco (Ctrl+H显示隐藏文件)
  4. 解压mujoco200 linux至home/.mujoco下,并改名为 mujoco200
  5. 将license文件复制分别复制到 ~/.mujoco 和 ~/.mujoco/mujoco200/bin文件夹下
    cp mjkey.txt ~/.mujoco
    cp mjkey.txt ~/.mujoco/mujoco200/bin
    
  6. 程序验证:测试结果是一个界面,里边有一个木偶小人
     cd ~/.mujoco/mujoco200/bin 
     ./simulate ../model/humanoid.xml
    

300
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}

二、安装mujoco-py

本文采用 conda 的方式进行安装。

  1. 下载源码:https://github.com/openai/mujoco-py
    注意:git clone https://github.com/openai/ mujoco-py.git 这个命令会默认安装网址中最新版本,如下图所示
    300
    这个版本是跟 mujoco2.1 版本(mujoco210)是匹配的。所以要到 releases 找到早期版本下载,本文选取 v2.0.2.5 。

  2. 解压,并剪切到/home/(自己计算机名字)的文件夹里,改名为 mujoco-py

  3. 安装 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
    
  4. 用 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
    
  5. 安装

    (gymlab) $ cd ~/mujoco-py/vendor 
    (gymlab) $ ./Xdummy-entrypoint 
    (gymlab) $ cd .. 
    (gymlab) $ python setup.py install
    
  • 报错:bash: ./Xdummy-entrypoint:/usr/bin/python:解释器错误: 没有那个文件或目录,解决方案
    sudo apt install python-is-python3
    
  1. 测试

    (gymlab) $ python
    >>> import mujoco_py
    # 第一次导入会加载一些东西,再导入一次就正常了
    >>> import mujoco_py
    
  2. 如最后加载 mujoco_py 报错,解决方案如下:
    第一步:安装libosmesa6-dev

    sudo apt install libosmesa6-dev
    

    安装好libosmesa6-dev,如若运行测试缺少如下包,便执行第二步

    第二步:安装patchelf(两个命令选一个就行)

    pip install patchelf
    sudo apt-get -y install patchelf
    
  • 报错:“1. Declare the function 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 the function to allow an error code to be returned.”,解决方案
    pip install cython==3.0.0a10
    

三、安装Gym

  1. 下载源码:git clone https://github.com/openai/gym.git
  2. 安装
    $ conda activate gymlab 
    (gymlab) $ cd ~/gym 
    (gymlab) $ pip install -e '.[all]'
    
  • 报错:“Building wheel for box2d-py (setup.py) … error error: subprocess-exited-with-error”,解决方案:
    conda install swig
    pip install --upgrade setuptools
    
  1. 添加环境变量(~/.bashrc)

    gedit ~/.bashrc
    # 在末尾添加
    export PYTHONPATH=path/to/gym:$PYTHONPATH
    
  2. 测试
    进入 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()
    

本文参考文档均以超链接形式在文中给出。
以上内容根据自己理解和实践所写,如有错误,请批评指正。

参考:

  1. Ubuntu16.04 搭建mujoco环境+强化学习gym
  2. Ubuntu 16.04 安装 mujoco, mujoco_py 和 gym
  3. gym包升级后炼丹炉的测试代码
  • 3
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

lx-summer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值