我的代码是:
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')
我没问题。 有任何想法吗? 谢谢!
答案 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'>
>>>