OpenAI Gym发布两年以来,官方一直没有给出windows版支持。而我只有一台普通的win10台式机,之前一直通过虚拟机上安装Ububtu来学习该框架,但是无奈电脑太差,而且虚拟机下不支持CUDA,只好想办法解决windows下安装gym的问题。
今天无意中看到OpenAI Gym 在windows下的配置和使用介绍的安装方法,但是存在如下问题:
- 作者仅在python2.7的环境下安装成功;
- 对于错误“NameError: name 'PUINT' is not defined”的解决不太友好
- 安装PyOpenGL的过程过于复杂
- Box2D没有安装
我经过研究,在该python2.7(Anaconda)环境下解决了上述问题
- 错误2可通过NameError: name 'PUINT' is not defined介绍的方式解决,仅仅需要在PUINT所在处的上一行增加‘PUINT = POINTER(UINT)’即可解决
- 安装PyOpenGl只需要运行conda install pyopengl
- Box2D仅需要从Python Extension Packages for Windows下载对应的Box2D包,然后通过pip的方式安装即可。
安装过程
但是我比较希望使用python3,所以尝试了下python3.6(Anaconda3 5.1.0)下安装的过程,发现很成功。以下对安装过程做简要介绍,其中部分代码来自于OpenAI Gym 在windows下的配置和使用,后文不再逐个说明。
首先安装最小化的gym,在cmd下运行:
pip
![9c871aa495ca8129e40d2c5dee4c2fd7.png](https://i-blog.csdnimg.cn/blog_migrate/a5bc4518d84bf7c5677f8ea6ec89c146.jpeg)
然后执行以下测试代码:
import
其中‘algorithm’和‘toy_text’的测试没有问题。
前文中在python2.7的环境下遇到的‘PUINT’和PyOpenGL问题在这里没有遇到,可能新装的Anaconda已经默认安装了PyOpenGL,如果没有安装的话,通过conda install pyopengl安装即可。
遇到的问题
Traceback (most recent call last):
File "D:CodingAnaconda3libsite-packagesgymenvsclassic_controlrendering.py", line 143, in __del__
File "D:CodingAnaconda3libsite-packagesgymenvsclassic_controlrendering.py", line 62, in close
File "D:CodingAnaconda3libsite-packagespygletwindowwin32__init__.py", line 305, in close
File "D:CodingAnaconda3libsite-packagespygletwindow__init__.py", line 770, in close
ImportError: sys.meta_path is None, Python is likely shutting down
该错误似乎并没有实质性的影响,但是留着它很令人难受。
我虽然找到了别人的讨论ImportError: sys.meta_path is None, Python is likely shutting down · Issue #893 · openai/gym,但是没有看懂他们的解决办法,而且他们好像是在linux下遇到的该错误。希望有人看懂该解决方法后告诉我。。。
鉴于该错误并没有太大影响,我用了一种极端的方式去除它。
找到错误所在代码:
Anaconda3libsite-packagesgymenvsclassic_controlrendering.py, line 62.
错误代码如下:
def
然后用try...except包裹起来:
def
后面遇到相同错误时,我都是这样解决的。
安装Atari
pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py
![a9986ca71a85f336d8eff57aa5cfe8c5.png](https://i-blog.csdnimg.cn/blog_migrate/340758427498faf4eb53cf0f3765bc19.jpeg)
安装Box2D
从Python Extension Packages for Windows下载相应的whl文件。
我下载的是Box2D‑2.3.2‑cp36‑cp36m‑win_amd64.whl。
然后通过pip的方式安装即可。
![d5991cf0eb2ea643b5ce9a9e09193cc8.png](https://i-blog.csdnimg.cn/blog_migrate/88128443cf5b1e734a72f1aba0f44126.jpeg)
至于mujoco,我尚没有找到办法安装。
后续:
2019.10.19 - 上述安装方式仍旧适用于python 3.7