我正在尝试使用PNG图像在Tkinter小部件中,借助来自PIL库的ImageTk模块。
image = Image.open(os.path.join('icons','bulb.png')) # using PIL for png images
self.correctGuessImage = ImageTk.PhotoImage(image)虽然在Windows7x64下工作很好,但它在Linux x64上却无法工作。在运行相同的文件时,我会得到这个错误。
File "/home/user/Documents/temp.py", line 222, in drawButtons
self.correctGuessImage = ImageTk.PhotoImage(image)
File "/usr/lib/python2.7/dist-packages/PIL/ImageTk.py", line 121, in __init__
self.paste(image)
File "/usr/lib/python2.7/dist-packages/PIL/ImageTk.py", line 171, in paste
im.load()
File "/usr/lib/python2.7/dist-packages/PIL/ImageFile.py", line 192, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
AttributeError: 'module' object has no attribute '_getdecoder'我安装了所有我能找到的'python','png‘和'tk’从代表,但没有效果。有什么想法吗?为什么会发生这种情况,以及如何解决?
发布于 2013-12-07 14:17:36
我设法解决了这个奇怪的问题。如果您正在使用Linux,您将安装来自代表的枕头,不要!首先,确保您有tk8.5-dev和tcl8.5-dev软件包,并通过PIP安装枕头。
$ sudo pip install pillowPIP应在您的机器上安装有tk和tcl开发包的枕头,这将解决上述问题。确保您没有实际的PIL库python-imaging-compat,因为Pillow和PIL是不兼容的。我觉得这很令人沮丧,因为惠普打印机的用户不会很高兴不能使用hplip (依赖python成像-compat)。
我在此页上找到了这个建议。
https://stackoverflow.com/questions/20384969
复制相似问题