服务器linux无图形界面上pyrender.OffscreenRenderer出现pyglet.canvas.xlib.NoSuchDisplayException的小白级解决方式

pyrender.OffscreenRenderer
报错:

OpenGL.error.GLError: GLError(
        err = 12289,
        baseOperation = eglInitialize,
        cArguments = (
                <OpenGL._opaque.EGLDisplay_pointer object at 0x7f9010efed40>,
                c_long(0),
                c_long(0),
        ),
        result = 0
)

首先,扔了egl,用这个就是不可能解决bug的
改成用osmesa,就放在import os后边,否则也可能出错

import os
# os.environ["PYOPENGL_PLATFORM"] = "egl"
os.environ["PYOPENGL_PLATFORM"] = "osmesa"

没有osmesa环境的话要装。不推荐conda装,不过如果你没有root权限可以试一下,命令是:

conda install -c menpo osmesa

来自anaconda官网:https://anaconda.org/menpo/osmesa

装了可以试一下跑不跑得通。我这里出了动态链接库找不着的问题,怎么链接都找不到,所以我建议别这么搞。
如果你可以要到root权限就去要,然后按照pyrender Installation Guide里Getting Pyrender Working with OSMesa这一节来做

这一节虽然建议你从源码装,但真是太麻烦了,所以我建议还是debian装吧,看Installing from a Debian Package这一节,里面说If you’re running Ubuntu 16.04 or newer, you should be able to install the required version of Mesa from my .deb file. 注意要Ubuntu 16.04 or newer的版本,你可以uname -a查看一下你的系统版本

他给的命令是这样的:

sudo apt update
sudo wget https://github.com/mmatl/travis_debs/raw/master/xenial/mesa_18.3.3-0.deb
sudo dpkg -i ./mesa_18.3.3-0.deb || true
sudo apt install -f

其中在执行sudo dpkg -i ./mesa_18.3.3-0.deb || true的时候会报错说你缺少依赖项,建议你装某某依赖项,装了又报缺少依赖项,很烦。不过只要按照他建议的那样apt --fix-broken install这个问题就能解决。
在这里插入图片描述
接着就能很顺利地一路装下去了。最后直接可以用osmesa环境。Over。

根据引用\[1\]和引用\[2\]的内容,报错代码"pyglet.window.NosuchConfigExceotion"是由于在VSCode中运行强化学习代码时,出现pyglet库的异常。具体来说,这个异常是由于pyglet库无法连接到显示器导致的。根据引用\[2\]的解决方法,可以尝试在launch.json文件中将控制台设置为"externalTerminal",然后重新运行代码。你可以按照以下步骤进行操作: 1. 打开VSCode,并找到你的项目文件夹。 2. 在项目文件夹中找到名为"launch.json"的文件。 3. 打开"launch.json"文件,并将其中的配置修改为以下内容: ``` { "version": "0.2.0", "configurations": \[ { "name": "Python: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "externalTerminal" } \] } ``` 4. 保存并关闭"launch.json"文件。 5. 然后重新运行你的强化学习代码,看看是否还会出现"pyglet.window.NosuchConfigExceotion"的异常。 希望这个解决方法能够帮助你解决问题!如果还有其他疑问,请随时提问。 #### 引用[.reference_title] - *1* *2* *3* [已解决pyglet.canvas.xlib.NoSuchDisplayException: Cannot connect to “None](https://blog.csdn.net/yuan2019035055/article/details/129460867)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值