pyglet.display.xlib.NoSuchDisplayException
报错信息
File "/usr/local/lib/python3.10/dist-packages/nlf_pipeline/util/smpl_mask.py", line 27, in get_render_fn
renderer = pyrender.OffscreenRenderer(10, 10)
File "/usr/local/lib/python3.10/dist-packages/pyrender/offscreen.py", line 31, in __init__
self._create()
File "/usr/local/lib/python3.10/dist-packages/pyrender/offscreen.py", line 149, in _create
self._platform.init_context()
File "/usr/local/lib/python3.10/dist-packages/pyrender/platforms/pyglet_platform.py", line 50, in init_context
self._window = pyglet.window.Window(config=conf, visible=False,
File "/usr/local/lib/python3.10/dist-packages/pyglet/window/xlib/__init__.py", line 167, in __init__
super().__init__(*args, **kwargs)
File "/usr/local/lib/python3.10/dist-packages/pyglet/window/__init__.py", line 508, in __init__
display = pyglet.display.get_display()
File "/usr/local/lib/python3.10/dist-packages/pyglet/display/__init__.py", line 77, in get_display
return Display()
File "/usr/local/lib/python3.10/dist-packages/pyglet/display/xlib.py", line 93, in __init__
raise NoSuchDisplayException(f'Cannot connect to "{name}"')
pyglet.display.xlib.NoSuchDisplayException: Cannot connect to "None"
解决方法:
import platform
if platform.system() == 'Linux':
os.environ["PYOPENGL_PLATFORM"] = "egl"
os.environ['EGL_DEVICE_ID'] = '0'
else:
print(f"{platform.system()}系统")