简体   繁体   English

pyglet尝试在docker容器中运行openai Gym时没有标准配置可用

[英]pyglet No standard config is available, when trying to run openai gym inside a docker container

I was able to get GUI from withing a docker container by following the instructions as seen in the video . 按照视频中的说明,我能够从带有docker容器的GUI中获取GUI。 (Tested by trying to start up firefox) (通过尝试启动Firefox进行测试)

I have installed OpenAI gym. 我已经安装了OpenAI体育馆。

On trying to run the sample code as seen here I get the following error 在试图运行所看到的示例代码在这里 ,我得到以下错误

libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast Traceback (most recent call last): File "<stdin>", line 2, in <module> File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/gym/core.py", line 153, in render return self._render(mode=mode, close=close) File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/gym/core.py", line 285, in _render return self.env.render(mode, close) File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/gym/core.py", line 153, in render return self._render(mode=mode, close=close) File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/gym/envs/classic_control/cartpole.py", line 114, in _render from gym.envs.classic_control import rendering File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/gym/envs/classic_control/rendering.py", line 23, in <module> from pyglet.gl import * File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/pyglet/gl/__init__.py", line 239, in <module> import pyglet.window File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/pyglet/window/__init__.py", line 1896, in <module> gl._create_shadow_window() File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/pyglet/gl/__init__.py", line 208, in _create_shadow_window _shadow_window = Window(width=1, height=1, visible=False) File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/pyglet/window/xlib/__init__.py", line 166, in __init__ super(XlibWindow, self).__init__(*args, **kwargs) File "/root/miniconda3/envs/reinforcement-learning/lib/python3.5/site-packages/pyglet/window/__init__.py", line 517, in __init__ raise NoSuchConfigException('No standard config is available.') pyglet.window.NoSuchConfigException: No standard config is available.

If you didn't opt out the opengl lib (eg specifying the -no-opengl-files option for the .run file) when installing the NVIDIA GPU driver, it may be the problem. 如果在安装NVIDIA GPU驱动程序时未选择退出opengl库(例如,为.run文件指定-no-opengl-files选项),则可能是问题所在。 I've got a laptop without those lib installed and got the container from a image containing gym environment to work. 我有一台没有安装这些lib的笔记本电脑,并从包含健身房环境的图像中获取了该容器,然后开始工作。 But on my PC with those opengl lib installed in addition to nvidia driver, the very same image as mentioned above didn't work and pyglet.window.NoSuchConfigException was raised. 但是,在装有nvidia驱动程序之外还安装了opengl lib的PC上,上述相同的映像不起作用,并引发了pyglet.window.NoSuchConfigException PS: I've tested on my PC via python3 console and found that Window could be created manually with pyglet outside container. PS:我已经通过python3控制台在PC上进行了测试,发现可以在容器外部使用pyglet手动创建Window。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM