Python pyglet分段错误和其他错误

Python pyglet分段错误和其他错误,python,linux,opengl,archlinux,pyglet,Python,Linux,Opengl,Archlinux,Pyglet,我正在尝试使用Python库为精灵加载图像。最初的目的与游戏有关,但我相信我已经将问题归结为一行代码。在Python shell中,我导入pyglet,然后运行以下代码行(或类似代码): Python退出,终端输出: Segmentation fault (core dumped) 但有时它不会这样做,而是抛出 Traceback (most recent call last): File "/usr/lib/python3.4/site-packages/pyglet/__init__.

我正在尝试使用Python库为精灵加载图像。最初的目的与游戏有关,但我相信我已经将问题归结为一行代码。在Python shell中,我导入pyglet,然后运行以下代码行(或类似代码):

Python退出,终端输出:

Segmentation fault (core dumped)
但有时它不会这样做,而是抛出

Traceback (most recent call last):
  File "/usr/lib/python3.4/site-packages/pyglet/__init__.py", line 351, in __getattr__
    return getattr(self._module, name)
AttributeError: 'NoneType' object has no attribute 'load'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.4/site-packages/pyglet/__init__.py", line 357, in __getattr__
    __import__(import_name)
  File "/usr/lib/python3.4/site-packages/pyglet/image/__init__.py", line 145, in <module>
    from pyglet.gl import *
  File "/usr/lib/python3.4/site-packages/pyglet/gl/__init__.py", line 236, in <module>
    import pyglet.window
  File "/usr/lib/python3.4/site-packages/pyglet/window/__init__.py", line 1816, in <module>
    gl._create_shadow_window()
  File "/usr/lib/python3.4/site-packages/pyglet/gl/__init__.py", line 205, in _create_shadow_window
    _shadow_window = Window(width=1, height=1, visible=False)
  File "/usr/lib/python3.4/site-packages/pyglet/window/xlib/__init__.py", line 166, in __init__
    super(XlibWindow, self).__init__(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/pyglet/window/__init__.py", line 515, in __init__
    context = config.create_context(gl.current_context)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 186, in create_context
    return XlibContextARB(self, share)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 300, in __init__
    super(XlibContext13, self).__init__(config, share)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 203, in __init__
    raise gl.ContextException('Could not create GL context') 
pyglet.gl.ContextException: Could not create GL context
也抛出异常

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.4/site-packages/pyglet/window/xlib/__init__.py", line 166, in __init__
    super(XlibWindow, self).__init__(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/pyglet/window/__init__.py", line 515, in __init__
    context = config.create_context(gl.current_context)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 186, in create_context
    return XlibContextARB(self, share)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 300, in __init__
    super(XlibContext13, self).__init__(config, share)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 203, in __init__
    raise gl.ContextException('Could not create GL context') 
pyglet.gl.ContextException: Could not create GL context
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/usr/lib/python3.4/site packages/pyglet/window/xlib/_init__.py”,第166行,在_init中__
super(XlibWindow,self)。\uuuuuuuuu初始化(*args,**kwargs)
文件“/usr/lib/python3.4/site packages/pyglet/window/_init__.py”,第515行,在_init中__
context=config.create\u context(总账.current\u context)
文件“/usr/lib/python3.4/site packages/pyglet/gl/xlib.py”,第186行,在创建上下文中
返回XlibContextARB(自身、共享)
文件“/usr/lib/python3.4/site packages/pyglet/gl/xlib.py”,第300行,在__
超级(XlibContext13,self)。\uuuu初始化(配置,共享)
文件“/usr/lib/python3.4/site packages/pyglet/gl/xlib.py”,第203行,在__
raise gl.ContextException('无法创建gl上下文')
pyglet.gl.ContextException:无法创建gl上下文
当从外壳运行时。有时,它在从文件运行时运行(它将运行,在后续运行中失败,然后最终用于另一个运行),如果我没记错的话,它在使用cx_Freeze冻结的Python程序中运行时不会出现问题

我在谷歌上没有找到比几年前更新的东西。我对OpenGL了解不多;目前我使用pyglet是因为它简化了应用程序的构建

我正在运行64位Manjaro Linux,带有XFCE、AMD CPU和AMD集成图形卡(带有封闭的Catalyst驱动程序)。我有Python 3.4.2和pyglet 1.2.0

有什么想法吗?

现在(2016.10.30)这个问题已经解决了。在网站的发展目前的报告

Pyglet网站开发者是图像加载程序的一个示例:

在my Archlinux系统(Linux alw 3.19.1-1-ARCH#1 SMP PREEMPT Sat Mar 7 20:59:30 CET 2015 x86_64 GNU/Linux)中,此错误持续存在-内核与python-3一起转储,但与python-2一起工作正常。我使用的是最新版本的pyglet-1.2.2

在MS Win 8.1上,此示例可以正常工作,没有任何错误。我认为这个模块的问题出在错误的工作上

我在开发网站上被报告了这个错误

现在您只能使用PNG格式:

...
from pyglet.image.codecs.png import PNGImageDecoder

fname = 'pennant.png'
img_pennant = pyglet.image.load(fname, decoder=PNGImageDecoder())
...
此代码未转储核心

pyglet.window.Window()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python3.4/site-packages/pyglet/window/xlib/__init__.py", line 166, in __init__
    super(XlibWindow, self).__init__(*args, **kwargs)
  File "/usr/lib/python3.4/site-packages/pyglet/window/__init__.py", line 515, in __init__
    context = config.create_context(gl.current_context)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 186, in create_context
    return XlibContextARB(self, share)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 300, in __init__
    super(XlibContext13, self).__init__(config, share)
  File "/usr/lib/python3.4/site-packages/pyglet/gl/xlib.py", line 203, in __init__
    raise gl.ContextException('Could not create GL context') 
pyglet.gl.ContextException: Could not create GL context
...
from pyglet.image.codecs.png import PNGImageDecoder

fname = 'pennant.png'
img_pennant = pyglet.image.load(fname, decoder=PNGImageDecoder())
...