You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3+Tkinter报错:'Image'对象无'PhotoImage'属性如何解决

错误原因

AttributeError: type object 'Image' has no attribute 'PhotoImage'报错的核心原因是PhotoImage方法不属于PIL的Image类,而是属于ImageTk模块,你大概率仅导入了Image类,未导入对应的ImageTk模块。

修复步骤
  • 补充导入ImageTk模块,在代码头部添加导入语句:
from PIL import Image, ImageTk
  • 修改创建图片对象的代码行,将原写法中的Image.PhotoImage替换为ImageTk.PhotoImage:
# 修改前错误写法
# self.photo = Image.PhotoImage(Image.open("Temp Images//" + pc[1] + ".jpg"))
# 修改后正确写法
self.photo = ImageTk.PhotoImage(Image.open("Temp Images//" + pc[1] + ".jpg"))
其他注意事项
  • 你当前将图片对象赋值给实例属性self.photo的写法是正确的,不要改为局部变量,否则会被Python垃圾回收,导致图片无法正常渲染。
  • 路径拼接建议使用os.path.join避免正反斜杠混用导致的路径错误,示例:
import os
img_path = os.path.join("Temp Images", f"{pc[1]}.jpg")
self.photo = ImageTk.PhotoImage(Image.open(img_path))
  • 你现有代码中is.remove(file)存在语法错误:is是Python内置关键字,不能作为对象名调用,删除文件应该使用os.remove,修改后代码:
import os
filelist = glob.glob(os.path.join("Temp Images", "*.jpg"))
for file in filelist:
    os.remove(file)

内容的提问来源于stack exchange,提问作者Adamu Tokal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 02:51:02