-1

I tried the code in open AI gym documentation. It works but errors occur after I close the window. The code I used is below:

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

And here is the error:

  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'

BTW, this is in python 3.6.

jonrsharpe
  • 115,751
  • 26
  • 228
  • 437
D1cvv0ng
  • 41
  • 3

1 Answers1

0

I also have met this problem recently. you should add "env.render(close=True)" to your code at the last, and the problem would be solved.