陆陆续续,花了一个星期,把各个模块翻了一遍,踩了无数坑。为了弄清楚中间的调用关系,连_msvccompiler.py,core.py这些都被我改过。最后,回归简单,按照正确的思路和方案安装,就没问题。网上此时间之前的许多帖子,要么是时间太早,和当前版本对不上;要么个别方法实际上用不了;特地整理此贴,给后来的小伙伴搭个梯子。
本文参考了:Windows10下MuJoCo安装及问题解决 - 知乎,和Mujoco&Mujoco-py安装教程 - 知乎
我装了3个python版本下的mujoco,包括非conda和conda下的,命令行和pycharm中使用的。部分内容有更新;各别细节可参考该文章。
一、材料关系说明:
.mujoco目录:这里放置基本的安装所需要的源文件,下面有两个子目录 mjpro150,和mujoco-py
这个目录带有一个点‘ . ',需要在cmd命令行创建。
.mujoco目录一般放在这里:
C:\Users\Administrator\.mujoco
2022年3月份mujoco网站,mjkey,txt已经不需要密码了,直接下载,放.mujoco目录下。
二、材料介绍及下载
1.mjpro150,是mujoco的C语言源程序和模型的XML文档,从mujoco主页下载,win10适合的版本就是这个:mjpro150 win64
下载链接,主页地址:Download
2.mujoco-py,是调用mujoco的python支持组件,即使安装好后,也不可以删除
在官网下载mujoco-py1.50版本,官网地址:openai/mujoco-py: MuJoCo is a physics engine for detailed, efficient rigid body simulations with contacts. mujoco-py allows using MuJoCo from Python 3. (github.com)
选这个版本:V1.50.1.0
三、环境变量设置:
用户变量:MUJOCO_PY_MJKEY_PATH:C:\Users\Administrator\.mujoco\mjpro150
系统变量:
MUJOCO_PY_MJKEY_PATH:C:\Users\Administrator\.mujoco\mjpro150\bin\mjkey.txt
MUJOCO_PY_MJPRO_PATH:C:\Users\Administrator\.mujoco\mjpro150
path中应该包括:
C:\Users\Administrator\.mujoco\mjpro150\bin
C:\Users\Administrator\.mujoco\mjpro150
C:\Users\Administrator\.mujoco
C:\Users\Administrator\.mujoco\mujoco-py
你的每个python版本下面,都有一个site-packages,这里是放的所有pip安装的包。我们装好mujoco后,也会有一个目录在这里。正常安装会自动加入path,如果没看到,加进去。
D:\ProgramData\Anaconda3\envs\testproject\Lib\site-packages
如果单独装了vc,而path中没看到,加进去
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin\x86_amd64
四、安装
1.将材料下载到指定目录,设置好环境变量
2.检查mujoco的c程序和模型部分,是否已安装好。在命令行,.mujoco目录下运行:simulate mjpro150\model\humanoid.xml
出现下图,说明此部分已成功 :
3.安装mujoco_py
需要先安装一些必要组件,在命令行,转到mujoco-py目录下:
pip install -r requirements.txt
pip install -r requirements.dev.txt
接下来:
A,非conda环境(此处是python3.6.3版本):在命令行,转到mujoco-py目录下,运行
python setup.py install
注意不要用某些帖子上说的改requirement文件,可能会陷入无限的报错。
B. conda环境(对应python版本3.8.12):激活mujoco-gym,转到mujoco-py目录下,命令行运行
pip install -e .
注意后面有一个点 .
使用-e 参数,我的理解是,提升安装版本的兼容性。我试过用python setup.py install安装后,需要在程序中添加mujoco-py目录路径,否则会找不到。
sys.path.append("C:\\Users\\Administrator\\.mujoco\\mujoco-py")
conda创建环境时,会自动安装vc,mujoco底层是C语言,所以需要调用vc的库。
如果不在conda环境下安装,就是需要有对应的vc组件。
安装vc组件,参考这篇文章,用他BAIDU盘里的,装一个vc++2015组件就可以了,不要装studio
Microsoft Visual C++ 14.0 is required解决方法 - 知乎
C. 在conda中 我有个testproject 环境,python是3.7.10,之前安装不能运行,我把_msvccompiler.py这些改得面目全非了,我又想使用由testproject 已安装的大量的包,于是我重新升级python到3.8.12。
激活testproject 环境后:
conda install python=3.8
转到mujoco-py目录下,命令行运行
pip install -e .
安装完毕,
进入python,import mujoco_py没报错,即成功
五、注意事项及报错处理
1.python安装好后,在安装mujoco_py前,可以命令行进行python环境,看一下版本,确保是正确的。
2.vcvarsall.bat未找到 :不要尝试去修改文件,这个是vc版本不对,使用 conda自动创建的环境,包含了必要的vc组件,此问题就能自动解决。
如果不用conda,就参考前面的如何安装vc组件。
3.文件名太长,生成的文件名共273位,如下文:
D:\ProgramData\Anaconda3\envs\testproject\lib\site-packages\mujoco_py-1.50.1.0-py3.7.egg\mujoco_py\generated\_pyxbld_WindowsExtensionBuilder\temp.win-amd64-3.7\Release\ProgramData\Anaconda3\envs\testproject\lib\site-packacges\mujoco_py-1.50.1.0-py3.7.egg\mujoco_py\cymj.obj
4. ........MSVC\\14.10.25017\\bin\\HostX86\\x64\\cl.exe' failed with exit status 2:
问题3,4,我之前在非conda环境下的能运行(我单独装了vc组件),
而在conda下的老环境,会报这种错。我更新python,并使用pip install -e .安装后就ok了。
总结:
下载对版本,设置好路径,使用正确的安装命令,就没问题。
欢迎各位有问题 ,在留言中提出,一起讨论,继续进步 !