2017-12-03 91 views
4

我试图让下面的代码正常工作。env.render()for OpenAI后出现错误

import gym 

env = gym.make("CartPole-v0") 

env.reset() 

env.render() 

我运行的第3线没有问题,但是当我运行4我得到的错误:

Traceback (most recent call last): 

    File "<ipython-input-3-a692a1a1ffe7>", line 1, in <module> 
    env.render() 

    File "/home/mikedoho/gym/gym/core.py", line 150, in render 
    return self._render(mode=mode, close=close) 

    File "/home/mikedoho/gym/gym/core.py", line 286, in _render 
    return self.env.render(mode, close) 

    File "/home/mikedoho/gym/gym/core.py", line 150, in render 
    return self._render(mode=mode, close=close) 

    File "/home/mikedoho/gym/gym/envs/classic_control/cartpole.py", line 116, in _render 
    self.viewer = rendering.Viewer(screen_width, screen_height) 

    File "/home/mikedoho/gym/gym/envs/classic_control/rendering.py", line 51, in __init__ 
    self.window = pyglet.window.Window(width=width, height=height, display=display) 

    File "/home/mikedoho/anaconda3/lib/python3.6/site-packages/pyglet/window/__init__.py", line 504, in __init__ 
    screen = display.get_default_screen() 

    File "/home/mikedoho/anaconda3/lib/python3.6/site-packages/pyglet/canvas/base.py", line 73, in get_default_screen 
    return self.get_screens()[0] 

    File "/home/mikedoho/anaconda3/lib/python3.6/site-packages/pyglet/canvas/base.py", line 65, in get_screens 
    raise NotImplementedError('abstract') 

NotImplementedError: abstract 

我希望得到一极一车在新窗口中显示。

此错误来自Spyder中的代码。我使用的是Ubuntu 16.04; python 3.6.3; IPython 6.1.0。使用jupyter笔记本我没有任何运气。

我再次道歉。今天刚刚下载的Ubuntu,我非常新。

回答

4

我只是解决了这个(错误?),像10分钟前:d

你必须降级pyglet 3 pyglet 1.2.4。 只需在您的anaconda提示符下键入:“pip install pyglet == 1.2.4”。之后,你可能不得不重新启动你的Spyder ide。

我会将“env.render(close = True)”添加到您的代码中,否则您将遇到麻烦关闭窗口。

如果您是python/ML/DL的新手,请看看YouTube上的“sentdex”。非常好的内容开始。 (他在他的健身房教程中使用TFlearn)但是由于tensorflow 1.4包含Keras,我建议使用keras高级lvl API作为您的神经网络。

好运,留深

,如果有人有一个良好的健身房文档,随时分享。

+0

非常感谢!我迫不及待想尽快尝试。也感谢你的建议。我将确保查看这些YouTube视频。此外,我会确保更新我的回应,不管这是否有效,但我很有希望。再次感谢! – MikeDoho

+0

所以它的工作!再次感谢!运行后没有错误。我只需要找出屏幕在哪里弹出。我会添加我的代码,但我无法得到它格式良好,但我运行相同的代码,因为我原来(做出更改后),我得到[2017-12-03 14:34:17,063]制作新的环境:CartPole- v0没有任何错误。 – MikeDoho

+0

env.render(close = True)关闭窗口。它最有可能弹出并再次关闭(在您的代码中)。只是评论它,你会看到窗口。 – mGwork