Python 属性错误:';非类型';对象没有属性';翻转';使用健身房时

Python 属性错误:';非类型';对象没有属性';翻转';使用健身房时,python,openai-gym,Python,Openai Gym,我在OpenAI健身房文档中尝试了该代码。它可以工作,但在我关闭窗口后会出现错误。我使用的代码如下: import gym env = gym.make('CartPole-v0') for i_episode in range(20): observation = env.reset() for t in range(100): env.render() print(observation) action = env.action

我在OpenAI健身房文档中尝试了该代码。它可以工作,但在我关闭窗口后会出现错误。我使用的代码如下:

import gym
env = gym.make('CartPole-v0')
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
下面是错误:

  File "<ipython-input-3-b38d53bb166b>", line 1, in <module>
    runfile('D:/Python/openAIGym.py', wdir='D:/Python')

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\spyder\utils\site\sitecustomize.py", line 705, in runfile
    execfile(filename, namespace)

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\spyder\utils\site\sitecustomize.py", line 102, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "D:/Python/openAIGym.py", line 6, in <module>
    env.render()

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\gym\core.py", line 150, in render
    return self._render(mode=mode, close=close)

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\gym\core.py", line 286, in _render
    return self.env.render(mode, close)

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\gym\core.py", line 150, in render
    return self._render(mode=mode, close=close)

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\gym\envs\classic_control\cartpole.py", line 146, in _render
    return self.viewer.render(return_rgb_array = mode=='rgb_array')

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\gym\envs\classic_control\rendering.py", line 104, in render
    self.window.flip()

  File "D:\Anaconda\envs\tensorflow\lib\site-packages\pyglet\window\win32\__init__.py", line 311, in flip
    self.context.flip()

AttributeError: 'NoneType' object has no attribute 'flip'
文件“”,第1行,在
runfile('D:/Python/openAIGym.py',wdir='D:/Python')
文件“D:\Anaconda\envs\tensorflow\lib\site packages\spyder\utils\site\sitecustomize.py”,第705行,在runfile中
execfile(文件名、命名空间)
文件“D:\Anaconda\envs\tensorflow\lib\site packages\spyder\utils\site\sitecustomize.py”,第102行,在execfile中
exec(编译(f.read(),文件名,'exec'),命名空间)
文件“D:/Python/openAIGym.py”,第6行,在
env.render()
文件“D:\Anaconda\envs\tensorflow\lib\site packages\gym\core.py”,第150行,在渲染中
返回self.\u渲染(模式=模式,关闭=关闭)
文件“D:\Anaconda\envs\tensorflow\lib\site packages\gym\core.py”,第286行,在渲染中
返回self.env.render(模式,关闭)
文件“D:\Anaconda\envs\tensorflow\lib\site packages\gym\core.py”,第150行,在渲染中
返回self.\u渲染(模式=模式,关闭=关闭)
文件“D:\Anaconda\envs\tensorflow\lib\site packages\gym\envs\classic\u control\cartpole.py”,第146行,在渲染中
return self.viewer.render(return_rgb_array=mode=='rgb_array')
文件“D:\Anaconda\envs\tensorflow\lib\site packages\gym\envs\classic\u control\rendering.py”,第104行,在render中
self.window.flip()
文件“D:\Anaconda\envs\tensorflow\lib\site packages\pyglet\window\win32\\uuu init\uuu.py”,第311行,在flip中
self.context.flip()
AttributeError:“非类型”对象没有属性“翻转”

顺便说一句,这是在python 3.6中。我最近也遇到了这个问题。 您应该在最后向代码中添加“env.render(close=True)”,问题就会得到解决