I've just installed openAI gym on Google Colab, but when I try to run 'CartPole-v0' environment as explained here.
Code:
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
I get this:
WARN: gym.spaces.Box autodetected dtype as <class 'numpy.float32'>. Please provide explicit dtype.
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-a81cbed23ce4> in <module>()
4 observation = env.reset()
5 for t in range(100):
----> 6 env.render()
7 print(observation)
8 action = env.action_space.sample()
/content/gym/gym/core.py in render(self, mode)
282
283 def render(self, mode='human'):
--> 284 return self.env.render(mode)
285
286 def close(self):
/content/gym/gym/envs/classic_control/cartpole.py in render(self, mode)
104
105 if self.viewer is None:
--> 106 from gym.envs.classic_control import rendering
107 self.viewer = rendering.Viewer(screen_width, screen_height)
108 l,r,t,b = -cartwidth/2, cartwidth/2, cartheight/2, -cartheight/2
/content/gym/gym/envs/classic_control/rendering.py in <module>()
21
22 try:
---> 23 from pyglet.gl import *
24 except ImportError as e:
25 reraise(prefix="Error occured while running `from pyglet.gl import *`",suffix="HINT: make sure you have OpenGL install. On Ubuntu, you can run 'apt-get install python-opengl'. If you're running on a server, you may need a virtual frame buffer; something like this should work: 'xvfb-run -s \"-screen 0 1400x900x24\" python <your_script.py>'")
/usr/local/lib/python3.6/dist-packages/pyglet/gl/__init__.py in <module>()
225 else:
226 from .carbon import CarbonConfig as Config
--> 227 del base
228
229 # XXX remove
NameError: name 'base' is not defined
The problem is the same in this question about NameError in openAI gym
Nothing is being rendered. I don't know how I could use this in google colab: 'xvfb-run -s \"-screen 0 1400x900x24\" python <your_script.py>'"
The Gym will normally render the display using GL, on your screen.
But Colab is run on the web as a notebook, it can’t display directly to your screen. It can only show the result through HTML.
If someone modifies the Gym to maniplulate WebGL, maybe someday. But not now.
One way to render gym environment in google colab is to use pyvirtualdisplay and store rgb frame array while running environment. Environment frames can be animated using animation feature of matplotlib and HTML function used for Ipython display module. You can find the implementation here. Make sure you install required libraries which you can find in the first cell of the colab. In case the first link for google colab doesn't work you can see this one.
i saw an suitablbe answer here.
pip install pyglet==1.5.11
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With