ImportError:没有名为 _imagingtk 的模块
Posted
技术标签:
【中文标题】ImportError:没有名为 _imagingtk 的模块【英文标题】:ImportError: No module named _imagingtk 【发布时间】:2014-05-12 09:05:23 【问题描述】:我想开始使用带有 python 的 Tkinter 并有以下代码:
#!/usr/bin/python
from Tkinter import *
from PIL import ImageTk, Image
top = Tk()
dir(top)
top.title("Erstes Frame")
erstesFrame = Frame(top, height=250, width=250)
erstesFrame.pack_propagate(0)
erstesFrame.pack()
img = ImageTk.PhotoImage(Image.open("mario.gif"))
erstesBild = Label(erstesFrame, image = img)
erstesBild.pack()
top.mainloop()
但是当我尝试执行它时,它只会给我这个错误:
Traceback (most recent call last):
File "ToDoAPP.py", line 14, in <module>
img = ImageTk.PhotoImage(Image.open("mario.gif"))
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageTk.py", line 116, in __init__
self.paste(image)
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageTk.py", line 181, in paste
import _imagingtk
ImportError: No module named _imagingtk
我用 python-pip 安装了 PIL,我的操作系统是 ubuntu 12.04,我的 python 版本是 2.7.3
【问题讨论】:
【参考方案1】:你需要安装ImageTk
模块。
在debian、ubuntu中,可以使用以下命令安装:
sudo apt-get install python-imaging-tk
更新
如果您使用的是最新版本的 ubuntu (16.04+),则软件包名称已更改。
python-pil.imagetk
(Python 2.x)
python3-pil.imagetk
(Python 3.x)
【讨论】:
可以通过pip安装吗? 我已经有那个包,版本:2.6.1-2,但仍然收到错误。 @appas,我怀疑您使用的是非系统版本的 Python。否则,请发布一个单独的问题。 @falsetru “非系统版本”是什么意思? 我不得不在我的 Ubuntu 16.04.1 LTS 上使用 @SarcasticSully 的答案:sudo apt install python3-pil.imagetk
。【参考方案2】:
正如 falsetru 所指出的,您需要先安装 ImageTk 模块:它不会自动随 Python 一起提供。为此,请运行以下命令之一:
如果您使用的是 Python 2.x,请使用以下命令:
sudo apt-get install python-imaging-tk
如果您使用的是 Python 3.x,请使用以下命令:
sudo apt-get install python3-pil.imagetk
【讨论】:
感谢您的提示。遗憾的是,即使在 Ubuntu 16.04.1 LTS 等新发行版上也没有解决这个问题。【参考方案3】:只是为了在此处添加答案,在 Ubuntu 16.04 上,包名称略有不同(即使对于 Python 2):
sudo apt-get install python-pil.imagetk
【讨论】:
【参考方案4】:最通用的解决方案是:
python -m pip install image
应该适用于 Python 2 和 3 以及 Windows。 PIP 将安装所有依赖项。
【讨论】:
以上是关于ImportError:没有名为 _imagingtk 的模块的主要内容,如果未能解决你的问题,请参考以下文章