Ошибка типа: объект ‘модуля’ не вызывается’ при назначении переменной изображения с помощью ‘из файла импорта изображения’

#python #python-imaging-library

#python #python-imaging-library

Вопрос:

Я получаю эту ошибку просто при попытке изменить размер изображения (изучаю Python здесь). Работает под управлением Windows 10. bride.jpg сохраняется в том же каталоге, что и мой скрипт.

 Traceback (most recent call last):
  File "C:UsersElliotPythonscriptsc6image_rotate.py", line 2, in <module>
    im = Image("bride.jpg")
TypeError: 'module' object is not callable
  

Вот мой код. Этот точный блок кода отлично работает на компьютере моего инструктора, и я не могу понять, почему он у меня не работает. Он работает под управлением Ubuntu. Может ли это быть причиной? Я установил файл PIL на свой компьютер. Если бы кто-нибудь мог объяснить, чего я не понимаю, а также как исправить код, я был бы очень признателен!

 from PIL import Image
im = Image("bride.jpg")
new_im = im.resize((480,360))
new_im.save("bride.jpg")
  

Ответ №1:

Это должно быть Image.open('bride.jpg') , а не Image('bride.jpg') .

Комментарии:

1. Спасибо. Будет ли приведенный выше код работать в любой среде? Если нет, материал курса неверен, и мне нужно отправить отзыв. Пожалуйста, сообщите…

2. @Elliot да, см., например pillow.readthedocs.io/en/stable/reference/Image.html . Изображение является модулем, а не функцией или конструктором, как вы его используете. Вы должны использовать функцию open() из изображения модуля, как предложил DeepSpace.