为什么 env.render() 在 Jupyter 上不起作用?

问题描述 投票:0回答:2

我安装了 Anaconda 并下载了一些代码。 这是经典的 OpenAI 项目,在本例中为 OpenAI Gym 入门 |纸空间博客 然而,当我输入

env.render(mode = “人类”)

它说(见下文)。 在另一台安装了全新 Anaconda 的计算机上也会发生同样的情况:

导入错误回溯(最近一次调用)文件 /opt/anaconda3/lib/python3.9/site-packages/gym/envs/classic_control/rendering.py:25, 在 24 中尝试: —> 25 from pyglet.gl import * 26 except ImportError as e:

文件/opt/anaconda3/lib/python3.9/site-packages/pyglet/gl/init.py:95, 36“OpenGL和GLU接口”。 37 38 这个包导入所有 OpenGL、GLU 和注册的 OpenGL 扩展 (…) 92 下面。 93 “”” —> 95 从 pyglet.gl.lib 导入 GLException 96 从 pyglet.gl.gl 导入 *

文件/opt/anaconda3/lib/python3.9/site-packages/pyglet/gl/lib.py:147, 146 elif pyglet.compat_platform == ‘darwin’: → 147 来自 pyglet.gl.lib_agl 导入 link_GL、link_GLU、link_AGL 148 其他:

文件 /opt/anaconda3/lib/python3.9/site-packages/pyglet/gl/lib_agl.py:43,在 41 all = [‘link_GL’, ‘link_GLU’, ‘link_AGL’] —> 43 gl_lib = pyglet.lib.load_library(framework=‘/System/Library/Frameworks/OpenGL.framework’) 44 agl_lib = pyglet.lib.load_library(framework=‘/System/Library/Frameworks/AGL.framework’)

文件/opt/anaconda3/lib/python3.9/site-packages/pyglet/lib.py:124,在 LibraryLoader.load_library(self, *names, **kwargs) 123 如果“框架” 在 kwargs 和 self.platform == ‘darwin’: → 124 return self.load_framework(kwargs[‘framework’]) 126 如果不是名称:

文件/opt/anaconda3/lib/python3.9/site-packages/pyglet/lib.py:279,在 MachOLibraryLoader.load_framework(self, path) 277 返回 lib → 279 引发 ImportError(“找不到框架 %s。”% 路径)

导入错误:找不到框架 /系统/库/框架/OpenGL.framework。

在处理上述异常的过程中,又发生了一个异常:

ImportError Traceback(最近一次调用最后)输入在[4]中,在()中 ----> 1 env.render(mode = “人类”)

文件/opt/anaconda3/lib/python3.9/site-packages/gym/core.py:240,在 包装器.render(self, mode, **kwargs) 239 def render(self, mode=‘人类’, **kwargs): → 240 return self.env.render(mode, **kwargs)

文件 /opt/anaconda3/lib/python3.9/site-packages/gym/envs/classic_control/mountain_car.py:126, 在 MountainCarEnv.render(self, mode) 123 carheight = 20 125 if self.viewer 为 None: → 126 fromgym.envs.classic_control import 渲染 127 self.viewer =Rendering.Viewer(screen_width, screen_height) 128 xs = np.linspace(self.min_position, self.max_position, 100)

文件 /opt/anaconda3/lib/python3.9/site-packages/gym/envs/classic_control/rendering.py:27, 25 from pyglet.gl import * 26 except ImportError as e: —> 27 raise ImportError(‘’’ 28 从 pyglet.gl import 运行时发生错误

  • 29 提示:确保您安装了 OpenGL。在 Ubuntu 上,您可以运行“apt-get install python-opengl”。 30 如果您在服务器上运行,您 可能需要虚拟帧缓冲区;像这样的东西应该有效:31 ‘xvfb-run -s“-screen 0 1400x900x24”python’32‘’’) 34 导入数学 35 将 numpy 导入为 np

ImportError:从 pyglet.gl import 运行时发生错误* 提示:确保您安装了 OpenGL。在 Ubuntu 上,您可以运行 ‘apt-get install python-opengl’。如果您在服务器上运行,您 可能需要虚拟帧缓冲区;像这样的东西应该有效: ‘xvfb-run -s “-screen 0 1400x900x24” python

python python-3.x anaconda jupyter openai-api
2个回答
2
投票

在尝试了许多不同的安装、环境的改变等等之后。 这最终对我有用,以防其他人遇到同样的问题:

pip install --user --upgrade git+http://github.com/pyglet/[email protected]

我在 github.com/pyglet/pyglet/pull/335 中找到了它,以防有人想查看上下文。


0
投票
创建环境时 - env:

gym.make("CartPole-v1")
你必须将 

render_mode

 指定为人类:

env = gym.make("CartPole-v1", render_mode="human")
然后执行渲染命令

© www.soinside.com 2019 - 2024. All rights reserved.