如何解决Pillow库中无法导入ImageTK的ImportError问题?
解决PIL导入ImageTK的ImportError问题
首先,最可能的原因是拼写错误——Pillow里的模块名是ImageTk(小写k),而不是你代码里写的ImageTK(大写K),而且PhotoImage的首字母I是大写的,你写的Photoimage是错误的。这两个大小写错误直接导致了导入失败和后续的调用错误。
第一步:修正代码中的拼写错误
把你的导入代码和图片处理代码改成以下正确形式:
import PIL from PIL import Image, ImageTk # 修正:ImageTK → ImageTk import tkinter as tk import datetime # 图片处理部分修正 main_image = Image.open('/Users/Brenden/Documents/Python_OOP/old-people- running-illo_h.jpg') # 注意:Pillow 9.1.0及以上版本中,Image.ANTIALIAS已被弃用,推荐用Resampling.LANCZOS main_image.thumbnail((100,100), Image.Resampling.LANCZOS) main_photo = ImageTk.PhotoImage(main_image) # 修正:ImageTK → ImageTk,Photoimage → PhotoImage main_label_image = tk.Label(image=main_photo) main_label_image.grid(column=1, row=0) # 修正:main_label.grid → main_label_image.grid
如果拼写修正后还是报错,试试这些排查步骤:
- 确认Pillow安装正确:在终端运行
pip3 show pillow(如果用Python2则用pip),如果没有输出,说明Pillow没装,执行pip3 install --upgrade pillow重新安装最新版本。 - 检查Python环境一致性:如果你用了虚拟环境,确保激活了对应的环境再安装Pillow;如果用IDE(比如VS Code、PyCharm),确认IDE选择的Python解释器是安装了Pillow的那个。
- 卸载重装Pillow:有时候安装过程中会有文件损坏,执行
pip3 uninstall pillow,然后再pip3 install pillow重装。 - 验证ImageTk是否存在:在Python交互环境中执行
from PIL import ImageTk,如果不报错,说明模块没问题,回到代码里找其他拼写错误。
另外补充一个小提示:Pillow 9.1.0之后,Image.ANTIALIAS被标记为弃用,建议换成Image.Resampling.LANCZOS,避免后续版本升级后出现新的报错。
内容的提问来源于stack exchange,提问作者Brenden
相关产品推荐
相关产品推荐

