Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NameError: name 'glPushMatrix' is not defined

Try to run a test code for stable baselines gym

import gym

from stable_baselines3 import A2C

env = gym.make("CartPole-v1")

model = A2C("MlpPolicy", env, verbose=1)
model.learn(total_timesteps=10_000)

obs = env.reset()
for i in range(100):
    action, _state = model.predict(obs, deterministic=True)
    obs, reward, done, info = env.step(action)
    env.render()
    if done:
      obs = env.reset()

found the error "NameError: name 'glPushMatrix' is not defined"

Traceback (most recent call last):
  File "test_cart_pole.py", line 14, in <module>
    env.render()
  File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/gym/core.py", line 295, in render
    return self.env.render(mode, **kwargs)
  File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/gym/envs/classic_control/cartpole.py", line 229, in render
    return self.viewer.render(return_rgb_array=mode == "rgb_array")
  File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/gym/envs/classic_control/rendering.py", line 126, in render
    self.transform.enable()
  File "/Users/xxx/opt/anaconda3/lib/python3.8/site-packages/gym/envs/classic_control/rendering.py", line 232, in enable
    glPushMatrix()
NameError: name 'glPushMatrix' is not defined

I tried "pip install PyOpenGL PyOpenGL_accelerate", which didn't help also uninstall pyglet and install again , did't work too Any Idea???

like image 467
Jack Su Avatar asked Nov 25 '25 11:11

Jack Su


1 Answers

Just had the same problem. Fixed it by installing an older version of pyglet:

$ pip install pyglet==1.5.27

I don't know if this is the latest version that avoids the problem, but it works.

like image 185
pfaya Avatar answered Nov 28 '25 17:11

pfaya



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!