Не удалось найти Python PIL library.Google App Engine

Установлен Google App Engine SDK.Python 2.6 отлично. Хотел пойти в образы и проверить локально. Установленный PIL

Установленный Python, затем выполнил установку PIL, работал на этот раз.

Все показалось хорошим, но попытка сделать манипулирование изображениями на локальном хосте дает:

"NotImplementedError: Unable to find the Python PIL library.  Please
 view the SDK documentation for details about installing PIL on your system."

Система: winxp

Ответ 1

Нам, вероятно, понадобится дополнительная информация, так что вот несколько вопросов и вещей, которые нужно попробовать.

Как вы пытаетесь получить доступ к PIL? Вы пытаетесь использовать модуль google.appengine.api.images или PIL напрямую? Это похоже на первое, но это не ясно.

Вы следовали инструкции для App Engine?

Почтовый код, если вы можете.

Возможно, самое главное, чтобы попробовать: посмотрите, можете ли вы использовать PIL из не-App Engine script. Просто напишите быстрый Python script, который обращается к нему и видит, как это происходит. Что-то вроде:

import Image
im = Image.open('filename.png')
im.show()

Если это не сработает, неудивительно, что Google App Engine не будет работать с PIL.

Ответ 2

Я потратил некоторое время, чтобы заставить PIL работать. Главным образом, потому что я забыл сообщить движку приложения загрузить его в файл yaml:

 libraries:
     - name:    PIL
     version: 1.1.7

Возможно, этот шаг очевиден, но я не видел, чтобы он хорошо документировал документацию Google, и я нашел здесь все виды сообщений о том, что PIL не был доступен в приложении. Я хочу подтвердить, что PIL работает в приложении.

Ответ 3

Насколько я знаю, Google AppEngine не позволяет напрямую использовать PIL, но вместо этого предоставляет ограниченный API изображений.

Он может изменять размер/вращать/обрезать и переворачивать изображения. Более того, что может сделать Picasaweb. Но он не может создавать новые изображения или выполнять сложные вещи, такие как добавление текста, рисования и т.д.

Ответ 4

В Ubuntu с python2.5 следующие действия:

новое репо: ppa.launchpad.net/fkrull/deadsnakes/ubuntu

sudo apt-get install python2.5 python2.5-dev libjpeg62 libjpeg62-dev

untar: http://effbot.org/media/downloads/Imaging-1.1.6.tar.gz

cd Imaging-1.1.6

отредактируйте строку setup.py 38: JPEG_ROOT = libinclude ( "/usr/lib" )

sudo python2.5 setup.py install

Готово

Ответ 5

Для OSX 10.11.6 и Python 2.7.13 мне нужно было установить pyyaml в дополнение к Pillow глобально, чтобы запущенный сервер API забрал их:

sudo pip install Pillow pyyaml

После этого мне пришлось специально добавить версию PIL 1.1.7 в библиотеки app.yaml, , хотя версия Pillow не была 1.1.7:

libraries:
- name: PIL
  version: 1.1.7

То, как я обнаружил, что я отсутствовал в библиотеке yaml, более подробно описано в этом комментарии:

PIL не найден

Ответ 6

Если вы очистите окно журнала GAE (при условии, что используете пусковую установку), перезапустите сервер, вы можете увидеть что-то в журнале. В моем случае я получил

  ПРЕДУПРЕЖДЕНИЕ 2011-01-27 21: 04: 11,856 dev_appserver.py:3698]
Не удалось инициализировать API изображений; вам, вероятно, не хватает Python-модуля PIL.
ImportError: dlopen (/Library/Python/2.6/site-packages/PIL/_imaging.so, 2): Символ не найден: _jpeg_resync_to_restart Ссылки:/Library/Python/2.6/site-packages/PIL/_imaging.so

Итак, я мог сказать, что я не очень хорошо связывался с библиотекой JPEG.

Ответ 7

Я столкнулся с той же проблемой на компьютере Windows, а затем я заметил в Документах App Engine:

Примечание. В дополнение к API изображений вы также можете использовать преобразования представленный в Python Imaging Library (PIL) в вашем приложении Python 2.7. Вы просто объявляете библиотеку в разделе библиотек Файл app.yaml. Однако, если вы хотите использовать PIL в своем местном (используя сервер разработки), вы также должны загрузить и установить PIL или подушку локально.

Так что просто скачать PIL, и он будет работать.