2017-12-03 95 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