AttributeError: Image has no attribute 'open'

AttributeError: Image has no attribute 'open'

我刚开始学习 Python 中内置的 Tkinter 模块。我正在尝试使用 pillow 构建一个简单的图像查看器 GUI。我在这里遇到属性错误。

AttributeError: type object 'Image' has no attribute 'open'

这是我的代码:

from PIL import ImageTk,Image
from tkinter import *
base = Tk()
base.title("Image Viewer")
base.iconbitmap("download.ico")
img1 = ImageTk.PhotoImage(Image.open("download.png"))
label1 = Label(image = img1)
label1.grid(row = 0, column = 0, columnspan = 3)
base.mainloop()

我似乎找不到解决此问题的方法,none 在 Whosebug 上找到类似问题的解决方案,工作。

from tkinter import * 

这会从 tkinter 导入所有内容,包括 图片:

Init signature: Image(imgtype, name=None, cnf={}, master=None, **kw)
Docstring:      Base class for images.
File:           [...]
Type:           type
Subclasses:     PhotoImage, BitmapImage

所以,您之前从 PIL 导入的图像模块被覆盖了。

你可以

a) 颠倒顺序:

from tkinter import *
from PIL import Image, ImageTk

b) 仅从 tkinter 导入您需要的内容

from PIL import ImageTk, Image
from tkinter import Tk

c) 将图像导入为其他内容:

from PIL import ImageTk
from PIL import Image as PILImage
from tkinter import * 

您可以尝试使用此代码段

import PIL.Image
import PIL.ImageTk
im = PIL.Image.open("download.png")
photo = PIL.ImageTk.PhotoImage(im)