首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >连接到PIL库的另一种方式?

连接到PIL库的另一种方式?
EN

Stack Overflow用户
提问于 2014-02-10 08:52:59
回答 2查看 299关注 0票数 0

通常,图书馆PIL按以下方式连接:

代码语言:javascript
复制
from PIL import ImageTk, Image 

我想用这样的方式连接起来:

代码语言:javascript
复制
import PIL

但我的版本行不通。下面是代码:

代码语言:javascript
复制
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()

错误信息是:

追溯(最近一次调用):File "C:\Python33\projects\PIL_IMAGETK\ImageTK_photoimage -копия.py",第11行,在openImg = PIL.Image.open(pathImg1) AttributeError中:‘模块’对象没有属性'Image‘

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-10 09:03:25

导入包(PIL)不会自动导入子包、子模块(PIL.ImagePIL.ImageTk)。(除非包本身也这样做)。

显式导入子模块。

替换以下一行:

代码语言:javascript
复制
import PIL

通过以下方式:

代码语言:javascript
复制
import PIL.Image
import PIL.ImageTk
票数 2
EN

Stack Overflow用户

发布于 2014-02-10 09:03:40

这是因为,Image是PIL包中的子模块,也就是说它不是函数或类。导入包不会自动导入其子模块。

如果要使用PIL命名空间,可以导入模块,如下所示:

代码语言:javascript
复制
import PIL.Image
openImg = PIL.Image.open(pathImg1)

如果要导入PIL的所有子模块,可以执行以下操作

代码语言:javascript
复制
from PIL import *
openImg = Image.open(pathImg1)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21672580

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档