Pyglet - TypeError: expected string or buffer

Pyglet - TypeError: expected string or buffer

我正在尝试使用 pyglet 而不是 pygame,因为它支持多个屏幕。 这是我 运行:

的示例代码
import pyglet

display = pyglet.canvas.get_display()
screens = display.get_screens()
window = pyglet.window.Window(fullscreen=True, screen=screens[1])

pyglet.app.run()

我得到这个错误:

Traceback (most recent call last): File "/home/pi/netcomShopTV/idk.py", line 5, in window = pyglet.window.Window() File "/usr/local/lib/python2.7/dist-packages/pyglet/init.py", line 359, in getattr import(import_name) File "/usr/local/lib/python2.7/dist-packages/pyglet/window/init.py", line 1890, in gl._create_shadow_window() File "/usr/local/lib/python2.7/dist-packages/pyglet/gl/init.py", line 209, in _create_shadow_window _shadow_window = Window(width=1, height=1, visible=False) File "/usr/local/lib/python2.7/dist-packages/pyglet/window/xlib/init.py", line 171, in init super(XlibWindow, self).init(*args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/pyglet/window/init.py", line 642, in init self._create() File "/usr/local/lib/python2.7/dist-packages/pyglet/window/xlib/init.py", line 265, in _create self.context.set_vsync(self._vsync) # XXX ? File "/usr/local/lib/python2.7/dist-packages/pyglet/gl/xlib.py", line 265, in set_vsync warnings.warn(e) TypeError: expected string or buffer

Pyglet 版本:1.4.8

我在网上搜索过,没有找到解决这个问题的方法。

似乎这个错误是在 this recent change 中引入的。你绝对应该在 pyglet github 问题跟踪器上提出它。

同时,尝试安装1.4.8之前的版本。 (虽然我怀疑这可能只会导致同步失败时崩溃,而不是试图警告你然后崩溃 :))。

如@alecxe 所述,这是一个错误。我在github开工单后,得到解决办法:

This is an exception for a Raspberry Pi specific issue. It's supposed to raise a warning, and pass without crashing. If possible, could you try editing line 265 in /usr/local/lib/python2.7/dist-packages/pyglet/gl/xlib.py, and changing:

warnings.warn(e) to warnings.warn(e.message)