Невозможно открыть изображения с помощью Python Image.open () - PullRequest
0 голосов
/ 30 апреля 2010

Мой код читает:

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 ]

4 голосов
/ 30 апреля 2010

Странно, что вы получаете исключение из-за того, что Image является объектом типа, а не модулем. Назначено ли изображение в другом месте вашего кода?

1 голос
/ 30 апреля 2010

Имеет ли ваш фактический код неверные утверждения:

from Image import Image

или

from Image import *

Модуль Image содержит класс Image, но они, конечно, разные (в модуле есть метод open). Если вы используете одну из этих двух форм, Image будет неправильно ссылаться на класс.

РЕДАКТИРОВАТЬ: Другая возможность заключается в том, что вы сами определяете конфликтующее имя изображения. У вас есть свой собственный класс изображения? Если это так, переименуйте его.

0 голосов
/ 30 апреля 2010

Это согласуется с тем, что вы создали класс (в новом стиле) с именем 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'>
>>> 
...