通常库PIL连接如下:
from PIL import ImageTk, Image
我想以这种方式连接它:
import PIL
但我的版本不起作用。这是代码:
import os, sys
import tkinter
import PIL
main = tkinter.Tk()
catalogImg1 = 'imgs'
nameImg1 = 'n.jpg'
pathImg1 = os.path.join(catalogImg1, nameImg1)
openImg = PIL.Image.open(pathImg1)
renderImg = PIL.ImageTk.PhotoImage(openImg)
tkinter.Label(main, image=renderImg).pack()
main.mainloop()
错误消息是:
Traceback(最近一次调用最后一次):文件 “C:\ Python33 \ projects \ PIL_IMAGETK \ ImageTK_photoimage - копия.py”,line 11,在 openImg = PIL.Image.open(pathImg1)AttributeError:'module'对象没有属性'Image'
答案 0 :(得分:2)
导入包(PIL
)不会自动导入子包,子模块(PIL.Image
,PIL.ImageTk
)。 (除非包装本身这样做)。
明确导入子模块。
替换以下行:
import PIL
使用:
import PIL.Image
import PIL.ImageTk
答案 1 :(得分:1)
这是因为Image
是PIL包中的子模块,即它不是函数或类。导入包不会自动导入其子模块。
如果要使用PIL
命名空间,可以按如下方式导入模块:
import PIL.Image
openImg = PIL.Image.open(pathImg1)
如果要导入PIL
的所有子模块,可以执行以下操作
from PIL import *
openImg = Image.open(pathImg1)