admin管理员组

文章数量:1587786

笔者写于2023年4月15日,此时Mujoco已经开源,Ubuntu上安装较为简单,但考虑到笔者大部分工作环境为Windows,所以探索了一下Windows10系统安装Mujoco。有一些坑,希望大家能够避免。

mujoco版本:mjpro150
mujoco-py版本:1.50.1.0
python版本:3.7.0
gym版本:0.19.0

一、Mujoco引擎安装

1.Visual Studio Build Tools的安装

运行vs_buildtools.exe。勾选Windows 10 SDK,并点击安装。

2.mjpro150_win64的安装

创建文件夹“C:\Users\Administrator\.mujoco”

将“mjpro150_win64.zip”中的文件解压至“.mujoco”中,形成“C:\Users\Administrator\.mujoco\mjpro150”

将激活文件“mjkey.txt”放入“C:\Users\Administrator\.mujoco”和 “C:\Users\Administrator\.mujoco\mjpro150\bin”路径下。

3.配置环境变量

我的电脑右键,点即属性,点即高级系统设置,点即系统环境变量。

先在“用户变量”和“系统变量”中,添加以下环境变量

变量名:MUJOCO_PY_MJPRO_PATH
变量值:C:\Users\Administrator\.mujoco\mjpro150

变量名:MUJOCO_PY_MJKEY_PATH
变量值:C:\Users\Administrator\.mujoco\mjpro150\bin\mjkey.txt

然后,再分别在“用户变量-Path”和“系统变量-PATH”中添加以下路径:

C:\Users\Administrator\.mujoco\mjpro150\bin
C:\Users\Administrator\.mujoco\mjpro150
C:\Users\Administrator\.mujoco

4.Mujoco测试

打开cmd,输入

cd C:\Users\Administrator\.mujoco\mjpro150\bin
simulate.exe ../model/humanoid.xml

看到图像,表明成功。

二、安装Mujoco-py

1.创建虚拟环境

用Anaconda创建一个名为Mujoco150的虚拟环境(不能取名为mujoco,否则后面也会报错!)(尽量使用Python3.7,更高版本的会报错)

在cmd控制台中,执行以下指令:

conda create -n Mujoco150 python=3.7.0

2.解压并安装mujoco-py

将“mujoco-py-1.50.1.0.tar.gz”解压至“C:\Users\Administrator\.mujoco”路径下,打开cmd控制台,依次执行如下指令:

cd C:\Users\Administrator\.mujoco\mujoco-py-1.50.1.0 #进入解压后的目录
conda activate Mujoco150 #激活虚拟环境
pip install -r requirements.txt #下载并安装相关依赖
pip install -r requirements.dev.txt #下载并安装相关依赖
python setup.py install #安装mujoco-py

上面第三行和第四行命令如果下载得比较慢,可以用以下代码替换:

pip install -i  https://pypi.tuna.tsinghua.edu/simple -r requirements.txt #从清华源下载并安装相关依赖
pip install -i  https://pypi.tuna.tsinghua.edu/simple -r requirements.dev.txt #从清华源下载并安装相关依赖

把‘C:\Users\Administrator\.mujoco\mujoco-py-1.50.1.0\mujoco_py’复制,按个ctrl+C。

粘贴到自己的python虚拟环境python包的所在位置‘C:\Users\Administrator\Anaconda3\envs\mujoco150\Lib\site-packages’,按个ctrl+V。

3.mujoco-py测试

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)

看到下图,成功。

三、安装gym

打开cmd控制台,依次执行以下命令:

conda activate Mujoco150
pip install gym[mujoco]==0.19.0

测试一下

import gym
env = gym.make('HalfCheetah-v2')
env.reset()
done = False
while not done:
_, _, done, _ = env.step(env.action_space.sample())
env.render()
env.close()

完成。

运行程序时的部分报错说明

ImportError: DLL load failed while importing cymj

这个报错是因为 Python 的版本较高,自 Python 3.8 开始,在程序运行时只会加载 trusted dlls。

解决方案就是对于 Python 3.8 及以上的 Python 版本 每次运行

import mujoco_py

指令前需要先运行下述三行命令:

import os
os.add_dll_directory("C://Users//XXX//.mujoco//mjpro150//bin")
os.add_dll_directory("C://Users//XXX//.mujoco//mujoco-py-1.50.1.0//mujoco_py"

distutils.errors.DistutilsExecError

这个是非常常见的一个报错,这边先给出一个报错实例:

CompileError: command ‘C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Tools\MSVC\14.29.30133\bin\HostX86\x64\cl.exe’ failed with exit status 2

cl : Command line warning D9025 : overriding ‘/W3’ with ‘/w’ cl : Command line warning D9002 : ignoring unknown option ‘-fopenmp’

GitHub 上也给出了该报错的原因和相应的解决方案,具体是因为电脑上安装的路径名过长,包括 Python 安装路径名和 vsbuildtools 安装路径名,具体的 Github 上对应 Issue 参见:Fatal error - file name too long · Issue #298 · openai/mujoco-py (github)

其他报错

这篇安装博客——Windows10安装开源Mujoco - 知乎 (zhihu) 的最后还给出了报错的一个原因:Visual Studio、visual studio SDK没有和anaconda、python、pycharm安装在一个盘里,具体我安装过程中并未遇到,如果有小伙伴在安装过程中遇到相关问题,可对应进行参考。

本文标签: