2009-07-23 26 views
11

Se instaló el SDK de Google App Engine.Python 2.6 perfecto. Quería ir a las imágenes, y probar localmente. Instalado PILNo se puede encontrar la biblioteca PIL de Python.Google App Engine

Python instalado, luego ejecutó la instalación PIL, funcionó esta vez

cosas parecían buenos, pero tratando de hacer localhost manipulación de imágenes da:

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

sistema: WinXP

Respuesta

3

Probablemente vamos a necesitar más información, así que aquí están algunas preguntas y cosas tratar.

¿Cómo está intentando acceder al PIL? ¿Estás intentando utilizar el módulo google.appengine.api.images, o PIL directamente? Suena como el anterior, pero no está claro.

¿Sigues the App Engine instructions?

Código postal, si es posible.

Quizás lo más importante que debe probar: vea si puede usar PIL desde un script que no sea de App Engine. Simplemente escriba un script rápido de Python que acceda a él y vea cómo funciona. Algo así como:

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

Si eso no funciona, no es de extrañar que Google App Engine no funcionaría con el PIL.

+0

Código: de Importación de imágenes // guión AppEngine error : Ningún módulo llamado Image – benasio

+0

Eso sugiere que PIL no está instalado correctamente. O no está allí, o no está en la ruta de búsqueda del módulo de Python. Si no manipula rutinariamente las rutas de búsqueda de Python, sugiero que quite PIL y lo vuelva a instalar, teniendo cuidado de detectar cualquier error que aparezca en el camino –

+0

// código original import Imagen im = Image.open (' filename.png ') im.show() ////////// error : Ningún módulo llamado Image – benasio

4

Por lo que sé, Google App Engine no permite el uso de PIL directamente, sino que proporciona un número limitado de Images API.

Puede cambiar el tamaño/rotar/recortar y voltear las imágenes. Más o menos lo que Picasaweb puede hacer. Pero no puede crear nuevas imágenes o hacer cosas complejas como la adición de texto, dibujo, etc.

+1

Esto se ha solucionado desde la versión 2.7. Mi colega pudo usar exitosamente PIL como si fuera una distribución estándar en el motor de la aplicación. – mvanveen

3

En Ubuntu con python2.5 la siguiente ayuda:

nueva operación: 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

línea de edición setup.py 38: JPEG_ROOT = libinclude ("/ usr/lib")

sudo python2.5 setup.py install

Hecho

+0

Esto funciona genial gracias –

+0

Esto no se aplica a App Engine en absoluto. – mvanveen

+0

Tiene, sin embargo, algo cambió con Ubuntu. – noiv

1

Si desactiva la ventana de registro de GAE (suponiendo está usando el iniciador) y luego reinicia su servidor, es posible que vea algo en el registro. En mi caso llegué

 
    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 

Entonces me di cuenta de que yo no vinculó bastante bien con la biblioteca JPEG.

9

Me tomó un tiempo conseguir que PIL funcione.Principalmente porque se me olvidó decirle motor de aplicación para cargar en el archivo YAML:

libraries: 
    - name: PIL 
    version: 1.1.7 

Tal vez este paso es obvio, pero no lo vi bien documentado en la documentación de Google y me encontré con todo tipo de mensajes aquí indica que PIL no estaba disponible en el motor de la aplicación. Quiero confirmar que PIL se está ejecutando en el motor de la aplicación.

+0

¡También ejecuté 'pip install Pillow' globalmente, junto con el anterior y ahora todo funciona! :) Encontré esto en la [Descripción general de la API de GAE Images Python] (https://cloud.google.com/appengine/docs/python/images/?csw=1). Mire la '★ Note' debajo del fragmento de código. –

0

me he encontrado con el mismo problema en la máquina de Windows y luego he publicado en el App Engine Docs:

Nota: Además de la API de imágenes, también puede utilizar las transformaciones previstos en la biblioteca de imágenes de Python (PIL) en su aplicación Python 2.7. Simplemente declare la biblioteca en la sección de bibliotecas del archivo app.yaml. Sin embargo, si desea utilizar PIL en su entorno local (utilizando el servidor de desarrollo) también debe download and install PIL o almohada localmente.

Tan solo download PIL y funcionará.

3

para OSX 10.11.6 y Python 2.7.13 que necesitaba para instalar pyyaml además de Pillowa nivel mundial para que el servidor de la API puesto en marcha para recogerlos:

sudo pip install Pillow pyyaml 

Después de esto tuve que añadir específicamente la versión PIL 1.1.7 en las bibliotecas app.yaml, a pesar de que la versión almohada no era 1.1.7:

libraries: 
- name: PIL 
    version: 1.1.7 

La manera que he encontrado que me estaba perdiendo la biblioteca yaml se describe con más detalle en este comentario:

PIL cannot be found

Cuestiones relacionadas