无法使用Python的Image.open()打开图像

时间:2010-04-30 03:10:57

标签: python image pylons

我的代码是:

import Image
def generateThumbnail(self, width, height):
    """
    Generates thumbnails for an image
    """
    im = Image.open(self._file)

当我调用此函数时,出现错误:

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

然而在控制台中:

import Image
im = Image.open('test.jpg')

我没问题。 有任何想法吗? 谢谢!

3 个答案:

答案 0 :(得分:4)

奇怪的是,你得到一个关于Image是类型对象而不是模块的例外。 “图像”是否已分配给代码中的其他位置?

答案 1 :(得分:1)

您的实际代码是否包含错误的语句:

from Image import Image

from Image import *

Image模块包含一个Image类,但它们当然不同(模块有一个open方法)。如果您使用这两种形式中的任何一种,Image将错误地引用该类。

编辑:另一种可能性是你自己定义一个冲突的图像名称。你有自己的Image课程吗?如果是这样,请将其重命名。

答案 2 :(得分:0)

这与你创建一个名为Image的(新式)类,或者在导入“Image”之后的某个时刻从某个地方(可能是无意中,从“*”导入)导入它一致:

>>> import Image
>>> Image.open
<function open at 0x99e3b0>
>>> class Image(object): pass
... 
>>> Image.open
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: type object 'Image' has no attribute 'open'
>>> 

寻找这个。您可以查看“打印图像”,它应该为您提供如下内容:

>>> print Image
<class 'foo.Image'>
>>>