【发布时间】:2021-03-18 06:49:56
【问题描述】:
我正在尝试在新的 macOs Big Sur 上运行这个简单的健身房示例。
import gym
env = gym.make('CartPole-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample()) # take a random action
env.close()
但是,我遇到了这个
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/envs/classic_control/rendering.py", line 25, in <module>
from pyglet.gl import *
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyglet/gl/__init__.py", line 95, in <module>
from pyglet.gl.lib import GLException
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyglet/gl/lib.py", line 147, in <module>
from pyglet.gl.lib_agl import link_GL, link_GLU, link_AGL
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyglet/gl/lib_agl.py", line 43, in <module>
gl_lib = pyglet.lib.load_library(framework='/System/Library/Frameworks/OpenGL.framework')
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyglet/lib.py", line 124, in load_library
return self.load_framework(kwargs['framework'])
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/pyglet/lib.py", line 279, in load_framework
raise ImportError("Can't find framework %s." % path)
ImportError: Can't find framework /System/Library/Frameworks/OpenGL.framework.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/Users/.../myFileName.py", line 19, in <module>
env.render()
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/core.py", line 240, in render
return self.env.render(mode, **kwargs)
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/envs/classic_control/cartpole.py", line 174, in render
from gym.envs.classic_control import rendering
File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages/gym/envs/classic_control/rendering.py", line 32, in <module>
''')
ImportError:
Error occurred while running `from pyglet.gl import *`
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>'
我关注了this 和this 的讨论,但找不到可行的解决方案。 有人可以帮忙吗?
其他信息
- macOs 大苏尔 11.0.1
- Python 3.9.0
- PyOpenGL==3.1.5
- pyglet==1.5.11(运行
pip install pyglet==1.5.11后显示Requirement already satisfied: pyglet==1.5.11 in /Library/Frameworks/...,但是,在我的脚本中运行print(pyglet.version)时,我得到1.5.0)。即使已安装,我如何将其更改为1.5.11?
【问题讨论】:
-
@Steve 没有,答案指向硬编码这条路径
/System/Library/Frameworks/OpenGL.framework/OpenGL,这是问题的根源
标签: python pyglet openai-gym macos-big-sur openai