在Google Colab用xvfb运行OpenAI Gym Retro遇NoSuchConfigException报错求助
解决Google Colab中xvfb运行Gym Retro时的pyglet NoSuchConfigException问题
我之前在Colab环境里用xvfb跑OpenAI Gym Retro时,也碰到过完全一样的NoSuchConfigException: No standard config is available报错,折腾了好一阵才搞定,给你几个亲测有效的解决方法:
强制指定pyglet的显示配置
这是最直接的修复方式,在启动xvfb和运行Gym Retro代码前,先设置pyglet的环境变量,强制它使用兼容的配置。在Colab代码单元格里先执行:import os os.environ['PYGLET_DISPLAY_COOKIE'] = '1' os.environ['PYGLET_GL_CONTEXT_VERSION_MAJOR'] = '2' os.environ['PYGLET_GL_CONTEXT_VERSION_MINOR'] = '1'之后再初始化xvfb环境:
!apt-get install -y xvfb python-opengl > /dev/null 2>&1 !pip install gym-retro > /dev/null 2>&1 from pyvirtualdisplay import Display display = Display(visible=0, size=(1400, 900)) display.start()降级pyglet到稳定版本
新版本pyglet在Colab的xvfb环境下存在兼容性问题,我把pyglet降到1.5.27版本后,这个报错就彻底消失了。执行以下命令降级:!pip install pyglet==1.5.27降级后记得重启Colab的运行时(点击顶部菜单栏「运行时」->「重启运行时」),再重新初始化xvfb和Gym Retro。
调整xvfb的启动参数
有时候xvfb默认的显示配置不够标准,你可以尝试指定更高分辨率和颜色深度启动:!Xvfb :1 -screen 0 1920x1080x24 & os.environ['DISPLAY'] = ':1'这种方式能提供更符合pyglet要求的显示环境,避免抛出配置异常。
如果以上方法都没效果,还可以试试把Gym Retro也降级到稳定旧版本,比如!pip install gym-retro==0.8.0,搭配旧版pyglet使用,兼容性会更好。
内容的提问来源于stack exchange,提问作者user650585
相关产品推荐
相关产品推荐

