win10 安装gym[all]和mujoco踩坑日志
我因为实验需求,要在电脑上pip install gym[all],而它又需要mujoco,而这个伞兵mujoco在win上安装贼多问题,我连续三天尝试在win10上安装mujoco,终于成功,分享一下对于我的问题我的解决方案
问题1:error: Microsoft Visual C++ 14.0 is required
吐槽
首先遇到的当然是这个问题,我按照许多博客的方法去下载visualcppbuildtools_full或者Microsoft Visual C++ 14.0等安装包,但都出现提示
安装包丢失或毁坏
找了许多帖子,翻墙、下载他们提供的安装包都无一成功,我甚至根据它第三个选项里提供的确实安装包的名字用everyting(题外话,强力安利everyting这个软件,找文件真的快),找到了我用Visual Studio Installer 下载vs2017 和2019时提供的同样名字的安装包,也没用。
查阅了许多帖子和stackflow之后,终于在一个github的Issues栏目中发现一个关键信息
(链接: error: Microsoft Visual C++ 14.0 is required #4160.)
这里问题真正要求电脑要有的是
而通过Visual Studio Installer只能安装17和19版本,就算是根据一些帖子所说的在修改选项中选择一些单独的组件也不能解决这个问题。而用Microsoft Visual C++ 14.0等安装包单独去安装这个又会出现上面所说的安装包丢失或毁坏 问题。我就意识到我一直在用正规的思维去想解决方案,于是我便想到可以找破解的离线资源,找vs2015的安装包。
解决方法
网上寻找VS2015的离线安装包资源,我这里直接提供给你们一个我找到的吧
链接: https://pan.baidu.com/s/1dSHKYn-xLAR-N8E06Z_6yw.
提取码:tjnb
下载后你会发现他是一个iso光驱文件,但其实win10直接可以解压打开,我是直接就用Bandizip就打开了,打开后将文件夹解压到一个文件夹中,然后双击vs_community.exe便会开始安装程序,然后默认配置开始安装就好,中间也会出现安装包丢失或毁坏的提示,但是都是一些JavaScript相关的包,直接点跳过包就ok,到最后你会发现安装程序卡在vs更新上,但其实这个时候你需要的编译器已经安装上了,更新这步应该可以直接按取消,但我以防万一,就让他自己结束并提示更新失败。
安装完成后你会在菜单栏中看到
这个时候问题应该就解决了,起码在我这个例子里是解决了
问题2:c1: fatal error C1081: XXX : 文件名太长
前言
在解决了问题一后,我继续尝试pip install mujoco-py,但出现了问题二所示的文件名太长的问题,老样子,我先看了一下官方定义,说是win下定义最长为260,要改的话我觉得太麻烦,于是我继续在网上找解决方法
解决方法
终于在Fatal error - file name too long #298.里找到了有用的的方法:
于是我把我的虚拟环境名字缩写成 gym,要进一步缩写成g也行,看个人,然后我把Anaconda文件夹改成了A,记得要将所有对应的环境变量修改,然后去github上把mujoco-py的源码下载下来了:https://github.com/openai/mujoco-py.然后在Anaconda Prompt里cd到源码的文件夹,执行
python setup.py install
来通过源码安装包,安装完后你可以在conda list中找到它,但这还不代表你能直接用它,你得在python中import它一次,完成代码的生成后才算是大功告成。在我的例子里,我第一次import后:
尽管中间很吓人,但最后成功地完成了代码生成,然后再多次import mujoco_py后便不会报错了:
问题3:error: command ‘swig.exe’ failed: No such file or directory
前言
解决了安装mujoco-py后,想着就直接pip install gym[all]没问题了,但报了这个错,其实就是缺少了swig这个组件
解决方案
conda install swig
安装完swig后再次执行
pip install gym[all]
然后就安装成功了
结语
win10搞这些环境真的废寿命,还是Linux香,但懒得搞双系统,起码现在懒得搞,就只能慢慢解决了