【问题标题】:class Image has no attribute 'open' [duplicate]类图像没有属性“打开”[重复]
【发布时间】:2012-11-11 22:24:26
【问题描述】:

可能重复:
img = Image.open(fp) AttributeError: class Image has no attribute ‘open’

所以我正在尝试使用 tkinter 在 python 中查看图片。我安装了 PIL,我试图打开一张图片,但我一直收到一个属性错误,说“类 Image 没有属性‘打开’

from __future__ import division
from PIL import Image
from Tkinter import *
import random

img = Image.open("majestic creature.jpeg").convert("RGB")

这不是我拥有的所有代码,但这是程序似乎遇到问题的部分。

【问题讨论】:

  • 我已经看过那个帖子了。我尝试了解决方案,它给了我另一个错误:IOError: cannot identify image file
  • 编辑了评论以包含错误。过早按下回车键。
  • 您确定不是“majestic creature.jpg”(不是 jpeg)还是文件名中的拼写错误?
  • 不,我刚查过,是jpg。我尝试将其更改为 jpeg,但它给了我一个不同的错误:IOError: [Errno 2] No such file or directory: 'majestic creative.jpeg'
  • 如果您知道链接的问题,它完全涵盖了您在问题中提出的问题,那么尽管您有完全不同的错误,为什么您还要就同一主题提出另一个问题?

标签: python tkinter python-imaging-library


【解决方案1】:

从你所说的来看,即This is not all of the code
您或其他一些导入声明了一些名为 Image 的变量/类,这已经覆盖了由 PIL 导入的 Image 类。

要专门使用PIL Image 类使用:

img = PIL.Image.open("majestic creature.jpeg").convert("RGB")

【讨论】:

  • 我不知道为什么,但如果我先导入 from Tkinter import* 和之前的 from PIL import Image 就可以了
  • 可能是因为 TKinter 有一个图像类,当它位于 from Tkinter import * 之后时,PIL 导入将覆盖该图像类。顺便说一句,出于这个原因,我总是鼓励显式导出。 epydoc.sourceforge.net/stdlib/Tkinter-module.html
猜你喜欢
  • 2020-09-01
  • 2019-05-16
  • 2021-05-29
  • 2021-02-25
  • 2017-04-05
  • 2013-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多