Python pyglet分段错误和其他错误
我正在尝试使用Python库为精灵加载图像。最初的目的与游戏有关,但我相信我已经将问题归结为一行代码。在Python shell中,我导入pyglet,然后运行以下代码行(或类似代码): Python退出,终端输出: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__.
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())
...