【问题标题】:Pyglet - TypeError: expected string or bufferPyglet - TypeError:预期的字符串或缓冲区
【发布时间】:2020-04-02 11:53:37
【问题描述】:

我正在尝试使用 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(最近一次调用最后一次):文件 “/home/pi/netcomShopTV/idk.py”,第 5 行,在 window = pyglet.window.Window() 文件“/usr/local/lib/python2.7/dist-packages/pyglet/init.py”,第 359 行, 在 getattrimport(import_name) 文件 "/usr/local/lib/python2.7/dist-packages/pyglet/window/init.py", 第 1890 行,在 gl._create_shadow_window() 文件“/usr/local/lib/python2.7/dist-packages/pyglet/gl/init.py”,行 209,在_create_shadow_window中 _shadow_window = 窗口(宽度=1,高度=1,可见=假)文件“/usr/local/lib/python2.7/dist-packages/pyglet/window/xlib/init.py” , 第 171 行,在 init 中 super(XlibWindow, self).init(*args, **kwargs) 文件 "/usr/local/lib/python2.7/dist-packages/pyglet/window/init强>.py", 第 642 行,在 init 中 self._create() 文件 "/usr/local/lib/python2.7/dist-packages/pyglet/window/xlib/init.py", 第 265 行,在 _create self.context.set_vsync(self._vsync) # XXX ?文件“/usr/local/lib/python2.7/dist-packages/pyglet/gl/xlib.py”,第 265 行, 在 set_vsync warnings.warn(e) TypeError: 预期的字符串或缓冲区

Pyglet 版本:1.4.8

我在互联网上搜索,找不到任何解决此问题的方法。

【问题讨论】:

    标签: python-2.7 pyglet raspberry-pi4


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      正如@alecxe 提到的,这是一个错误。在github开票后,我得到了解决方案:

      这是 Raspberry Pi 特定问题的一个例外。应该是 发出警告,并通过而不会崩溃。如果可能的话,你能 尝试编辑第 265 行 /usr/local/lib/python2.7/dist-packages/pyglet/gl/xlib.py,和 变化:

      warnings.warn(e) 到 warnings.warn(e.message)

      【讨论】:

        猜你喜欢
        • 2013-04-18
        • 2016-01-24
        • 1970-01-01
        • 1970-01-01
        • 2018-04-28
        • 2016-07-15
        • 2016-07-31
        相关资源
        最近更新 更多