2009-07-23 2 views
11

Установлен Google App Engine SDK.Python 2.6 отлично. Требуется войти в изображения и протестировать локально. Установленный PILНевозможно найти Python PIL library.Google App Engine

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

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

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

система: WinXP

ответ

3

Мы, вероятно, понадобится больше информации, поэтому здесь некоторые вопросы и вещи пытаться.

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

Вы писали: the App Engine instructions?

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

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

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

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

+0

Код: Импорт изображений // Appengine сценарий ошибка <типа «exceptions.ImportError» >: Нет модуля с именем Image – benasio

+0

Это говорит о том, что PIL установлен неправильно. Это либо не существует, либо нет на пути поиска модуля Python. Если вы не рутинно манипулируете вами путями поиска Python, я предлагаю удалить PIL и повторно установить его снова, стараясь следить за любыми ошибками, возникающими по пути –

+0

// исходный код import image im = Image.open (' filename.png ') im.show() ////////// ошибка <тип' exceptions.ImportError '>: нет модуля с именем Image – benasio

4

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

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

+1

Это исправлено с момента выпуска версии 2.7. Мой коллега смог успешно использовать PIL, как если бы это был стандартный дистрибутив на движке приложения. – mvanveen

3

В Ubuntu с python2.5 следующее помогает:

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

Sudo APT-получить установку python2.5 python2.5-DEV libjpeg62 libjpeg62-DEV

распаковываем: http://effbot.org/media/downloads/Imaging-1.1.6.tar.gz

CD-изображений 1.1.6

редактировать setup.py линия 38: JPEG_ROOT = libinclude ("/ USR/Lib")

Судо python2.5 setup.py установить

Совершено

+0

Это отлично работает –

+0

Это не относится к App Engine вообще. – mvanveen

+0

Это, однако, что-то изменилось с Ubuntu. – noiv

1

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

 
    WARNING 2011-01-27 21:04:11,856 dev_appserver.py:3698] 
Could not initialize images API; you are likely missing the Python "PIL" module. 
ImportError: dlopen(/Library/Python/2.6/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart 
    Referenced from: /Library/Python/2.6/site-packages/PIL/_imaging.so 

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

9

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

libraries: 
    - name: PIL 
    version: 1.1.7 

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

+0

Я также запускал 'pip install Pillow' во всем мире, вместе с выше, и теперь все работает! :) Я нашел это в [GAE Images Python API Overview] (https://cloud.google.com/appengine/docs/python/images/?csw=1). Посмотрите на «★ Примечание» в фрагменте кода. –

0

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

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

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

3

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

sudo pip install Pillow pyyaml 

После этого мне пришлось в частности, добавить PIL версию 1.1.7 в app.yaml библиотек, даже если версия Подушка НЕ ​​была 1.1.7:

libraries: 
- name: PIL 
    version: 1.1.7 

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

PIL cannot be found

Смежные вопросы