无法使用Python的Image.open()打开图像
我的代码是:
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
这说明你可能在某个时候创建了一个叫做 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”来查看,这样应该会给你类似下面的结果:
>>> print Image
<class 'foo.Image'>
>>>
1
你的代码里是不是有错误的语句:
from Image import Image
或者
from Image import *
Image模块里面有一个Image类,但它们是不同的(这个模块还有一个open方法)。如果你用这两种写法中的任何一种,Image就会错误地指向这个类。
补充:还有一种可能是你自己定义了一个冲突的Image名字。你有没有自己的Image类?如果有的话,改个名字吧。
4
你遇到的这个问题挺奇怪的,因为它提示你说“Image”是一个类型对象,而不是一个模块。你在代码的其他地方有没有把“Image”赋值给其他东西呢?