OpenAI env.render() 之后的错误

Error following 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

我希望能有一辆挂在杆子上的手推车在新的 window 中展示。

此错误来自 Spyder 中的代码。我正在使用 ubuntu 16.04; python3.6.3; IPython6.1.0。我用 jupyter notebook 运气不好。

再次向您道歉。我对此很陌生,今天刚下载 ubuntu。

我刚刚解决了这个问题(错误?),就像 10 分钟前 :D

您必须将 pyglet 3 降级到 pyglet 1.2.4。 只需在您的 anaconda 提示符中输入:pip install pyglet==1.2.4。之后你可能需要重启你的 spyder ide.

我会在您的代码中添加 env.close(),否则您将无法关闭 window。

如果您是 python/ML/DL 的新手,请在 youtube 上查看 "sentdex"。 imo 非常好的内容开始。 (他在他的健身房教程中使用了 TFlearn)但是由于 tensorflow 1.4 包含 Keras,我建议对你的神经网络使用 keras high lvl API。

祝你好运并保持深度

如果有人有好的健身房文档,欢迎分享。