当前位置:   article > 正文

Ubuntu 18.04 安装 mujoco, mujoco_py 和 gym_ubuntu18.04安装mujoco

ubuntu18.04安装mujoco

​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
    
    • 1
    • 2
  6. 程序验证:测试结果是一个界面,里边有一个木偶小人
     cd ~/.mujoco/mujoco200/bin 
     ./simulate ../model/humanoid.xml
    
    • 1
    • 2

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}
  • 1
  • 2
  • 3
  • 4

二、安装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
    
    • 1
    • 2
  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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  5. 安装

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

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

    sudo apt install libosmesa6-dev
    
    • 1

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

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

    pip install patchelf
    sudo apt-get -y install patchelf
    
    • 1
    • 2
  • 报错:“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
    
    • 1

三、安装Gym

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

    gedit ~/.bashrc
    # 在末尾添加
    export PYTHONPATH=path/to/gym:$PYTHONPATH
    
    • 1
    • 2
    • 3
  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()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    # 测试代码 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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

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

参考:

  1. Ubuntu16.04 搭建mujoco环境+强化学习gym
  2. Ubuntu 16.04 安装 mujoco, mujoco_py 和 gym
  3. gym包升级后炼丹炉的测试代码
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/990573
推荐阅读
相关标签
  

闽ICP备14008679号