首页 > 解决方案 > GlfwError: 无法创建 GLFW 窗口 (windows)

问题描述

我在windows 10 x64上使用 openAI gym,通过windows 远程桌面使用python 3.6.7 ,我成功安装了 atari-pymujoco-py,但是当我尝试运行此代码时。

import gym

env = gym.make('Humanoid-v2')

for i_episode in range(100):
    env.reset()
    for t in range(100):
        env.render()
        action = env.action_space.sample()
        observation, reward, done, info = env.step(action)
        if done:
            print("Episode finished after {} timesteps".format(t+1))
            break

我收到了这个错误:

GLFW error (code %d): %s 65544 b'Vulkan: Failed to query instance extension count: The requested version of Vulkan is not supported by the driver or is otherwise incompatible'
Creating window glfw
GLFW error (code %d): %s 65542 b'WGL: The driver does not appear to support OpenGL'
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    env.render()
  File "D:\ReinforceLearning\RLenv\lib\site-packages\gym\core.py", line 275, in render
    return self.env.render(mode, **kwargs)
  File "D:\ReinforceLearning\RLenv\lib\site-packages\gym\envs\mujoco\mujoco_env.py", line 118, in render
    self._get_viewer(mode).render()
  File "D:\ReinforceLearning\RLenv\lib\site-packages\gym\envs\mujoco\mujoco_env.py", line 130, in _get_viewer
    self.viewer = mujoco_py.MjViewer(self.sim)
  File "D:\ReinforceLearning\RLenv\lib\site-packages\mujoco_py-1.50.1.0-py3.6.egg\mujoco_py\mjviewer.py", line 130, in __init__
    super().__init__(sim)
  File "D:\ReinforceLearning\RLenv\lib\site-packages\mujoco_py-1.50.1.0-py3.6.egg\mujoco_py\mjviewer.py", line 25, in __init__
    super().__init__(sim)
  File "RLenv\lib\site-packages\mujoco_py-1.50.1.0-py3.6.egg\mujoco_py\mjrendercontext.pyx", line 244, in mujoco_py.cymj.MjRenderContextWindow.__init__
    super().__init__(sim, offscreen=False)
  File "RLenv\lib\site-packages\mujoco_py-1.50.1.0-py3.6.egg\mujoco_py\mjrendercontext.pyx", line 43, in mujoco_py.cymj.MjRenderContext.__init__
    self._setup_opengl_context(offscreen)
  File "RLenv\lib\site-packages\mujoco_py-1.50.1.0-py3.6.egg\mujoco_py\mjrendercontext.pyx", line 92, in mujoco_py.cymj.MjRenderContext._setup_opengl_context
    self._opengl_context = GlfwContext(offscreen=offscreen)
  File "RLenv\lib\site-packages\mujoco_py-1.50.1.0-py3.6.egg\mujoco_py\opengl_context.pyx", line 48, in mujoco_py.cymj.GlfwContext.__init__
    self.window = self._create_window(offscreen)
  File "RLenv\lib\site-packages\mujoco_py-1.50.1.0-py3.6.egg\mujoco_py\opengl_context.pyx", line 97, in mujoco_py.cymj.GlfwContext._create_window
    raise GlfwError("Failed to create GLFW window")
mujoco_py.cymj.GlfwError: Failed to create GLFW window

标签: python-3.xwindowsopenglglfwopenai-gym

解决方案


1.1 之后的 OpenGL 版本的 NVIDIA GPU 不支持 OpenGL over WindowsRemote。是否写过关于存在什么解决方法的文章: Windows Remote 上 OpenGL 的当前状态和解决方案

为伤口添加额外的盐:您可以启动 opengl 上下文,然后通过 WindowsRemote 连接。但是如果没有变通方法,直接在会话内启动是不可能的。


推荐阅读