我尝试在PIL库的ImageTk模块的帮助下,在Tkinter Button小部件中使用 PNG 图像。
image = Image.open(os.path.join('icons','bulb.png')) # using PIL for png images
self.correctGuessImage = ImageTk.PhotoImage(image)
虽然在Windows 7x64下正常工作但它无法在Linux Mint 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'安装了我能找到的所有内容,但没有效果。任何想法为什么会发生这种情况以及如何解决这个问题?
答案 0 :(得分:0)
我设法解决了这个奇怪的问题。如果您正在使用Linux Mint,那么您将从代表处安装枕头,不要!首先确保您拥有tk8.5-dev
和tcl8.5-dev
个套餐,然后通过PIP安装 pillow 。
$ sudo pip install pillow
PIP应在您的机器上安装tk和tcl开发包,这将解决上述问题。确保您没有python-imaging-compat
实际的PIL库,因为Pillow和PIL不兼容。我发现这非常令人沮丧,因为惠普打印机的用户不会乐于使用hplip(python-imaging-compat的依赖)
我在this page找到了建议。