扫一扫下方二维码,关注本站官方公众号
获取永久解锁本站全部文章的验证码
还能不定期领现金红包

pycharm怎么安装gym_windows 10、Python 3.6 环境下安装OpenAI Gym-Go语言中文社区

pycharm怎么安装gym_windows 10、Python 3.6 环境下安装OpenAI Gym


OpenAI Gym发布两年以来,官方一直没有给出windows版支持。而我只有一台普通的win10台式机,之前一直通过虚拟机上安装Ububtu来学习该框架,但是无奈电脑太差,而且虚拟机下不支持CUDA,只好想办法解决windows下安装gym的问题。

今天无意中看到OpenAI Gym 在windows下的配置和使用介绍的安装方法,但是存在如下问题:

  1. 作者仅在python2.7的环境下安装成功;
  2. 对于错误“NameError: name 'PUINT' is not defined的解决不太友好
  3. 安装PyOpenGL的过程过于复杂
  4. Box2D没有安装

我经过研究,在该python2.7(Anaconda)环境下解决了上述问题

  1. 错误2可通过NameError: name 'PUINT' is not defined介绍的方式解决,仅仅需要在PUINT所在处的上一行增加‘PUINT = POINTER(UINT)’即可解决
  2. 安装PyOpenGl只需要运行conda install pyopengl
  3. Box2D仅需要从Python Extension Packages for Windows下载对应的Box2D包,然后通过pip的方式安装即可。

安装过程

但是我比较希望使用python3,所以尝试了下python3.6(Anaconda3 5.1.0)下安装的过程,发现很成功。以下对安装过程做简要介绍,其中部分代码来自于OpenAI Gym 在windows下的配置和使用,后文不再逐个说明。

首先安装最小化的gym,在cmd下运行:

pip install gym

0cbbbe0e4d8ca36a7bad0de75a2954c6.png

然后执行以下测试代码:

import gym

test_envs={'algorithm':'Copy-v0',
           'toy_text':'FrozenLake-v0',
           'control':'CartPole-v0',  
           'atari':'SpaceInvaders-v0'
           'mujoco':'Humanoid-v1',    
           'box2d':'LunarLander-v2' } 

game_name = test_envs['algorithm']
env = gym.make(game_name)
for i_episode in range(20):
    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

其中‘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 close(self):
        self.window.close()

然后用try...except包裹起来:

  def close(self):
        try:
            self.window.close()
        except:
            pass

后面遇到相同错误时,我都是这样解决的。

安装Atari

pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py

81369b10a5ddf558beafd2fdd4878c4c.png

安装Box2D

从Python Extension Packages for Windows下载相应的whl文件。

我下载的是Box2D‑2.3.2‑cp36‑cp36m‑win_amd64.whl。

然后通过pip的方式安装即可。

c46f16d7953f90c4d940328546b0e4f3.png

至于mujoco,我尚没有找到办法安装。

后续:

2019.10.19 - 上述安装方式仍旧适用于python 3.7

版权声明1:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/weixin_33654339/article/details/113538141
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。

0 条评论

请先 登录 后评论

官方社群