为什么引用(python)pyglet.image中的类会在Windows上导致大量的cpu加载?

我正在使用python的pyglet模块(Windows上的python 3)。 当我引用pyglet.image中的任何类时,python的CPU使用率跳转,直到我退出Python。 例如:

Microsoft Windows [Version 6.1.7601] Copyright (c) 2009 Microsoft Corporation. All rights reserved. C:\Anaconda3>python.exe Python 3.4.3 |Anaconda 2.3.0 (64-bit)| (default, Mar 6 2015, 12:06:10) [MSC v.1 600 64 bit (AMD64)] on win32 Type "help", "copyright", "credits" or "license" for more information. >>> import pyglet #No problem! >>> pyglet.image.ImageData #Heavy CPU load until I exit python <class 'pyglet.image.ImageData'> 

这是预期的行为? 为什么提到这个类 (甚至没有实例化) 会导致如此高的CPU负载?

我testing过的系统:

这可能是硬件依赖的吗?

这可能与模块上的以下几行有关:

 # Initialise default codecs from pyglet.image import codecs as _codecs _codecs.add_default_image_codecs() 

加载默认编解码器的顺序是:

 # Add the codecs we know about. These should be listed in order of # preference. This is called automatically by pyglet.image. # Compressed texture in DDS format try: from pyglet.image.codecs import dds add_encoders(dds) add_decoders(dds) except ImportError: pass # Mac OS X default: QuickTime (...) # Windows XP default: GDI+ (...) # Linux default: GdkPixbuf 2.0 (...) # Fallback: PIL (...) # Fallback: PNG loader (slow) (...) # Fallback: BMP loader (slow) (...) 

由于延迟加载, pyglet.image只在您引用某个内容时加载,而您可能正在使用缓慢的后备之一。 如果是这种情况,也许你可以尝试安装/卸载编解码器,以便一次使用一个编解码器,并确定解码器是否确实存在问题。 发布您的这些编解码器版本可能有助于重现此问题。