Loganathan
Loganathan

Reputation: 921

Getting " AttributeError: 'ImageData' object has no attribute 'data' " in headless gym jupyter Python 2.7

I am trying to run gym in headless server and render the same in jupyter. Python version 2.7.

I have started the jupyter using xvfb-run -a -s "-screen 0 1400x900x24" jupyter notebook

Below is the Jupyte cell that I run.

import matplotlib.pyplot as plt
import gym
from IPython import display
%matplotlib inline

env = gym.make('CartPole-v0')
env.reset()

plt.imshow(env.render(mode='rgb_array'))
display.display(plt.gcf())    
display.clear_output(wait=True)
env.step(env.action_space.sample()) # take a random action

env.close()

But the error I get is as below :

AttributeError: 'ImageData' object has no attribute 'data'

enter image description here

I have searched a lot in forums but could not find a solution. Thanks in advance to help me fix this error and make me to render gym in jupyter notebook.

Upvotes: 4

Views: 5752

Answers (3)

Stan Lin
Stan Lin

Reputation: 968

For what it's worth, like @patapouf_ai I upgraded from gym 0.9.6 to gym 0.19.0 and this solved the problem. It seems the root issue is that mode=rgb_mode returned error when passed into env.render.

Upvotes: 0

patapouf_ai
patapouf_ai

Reputation: 18693

I have python 3.7 and for my upgrading to gym 0.18.2 solved the problem (with pyglet 1.5.5)

Upvotes: 0

David
David

Reputation: 1680

I encountered the same issue. Installing pyglet-v1.3.2 instead of v1.4.1 solved the issue for me.

Upvotes: 6

Related Questions