Error de PIL: el módulo _imaging C no está instalado

Tengo instalado PIL (biblioteca de imágenes de Python).

Cuando corro Python:

import PIL import Image import _imaging 

No consigo errores. Sin embargo, cuando se ejecuta mi aplicación, se eleva

 The _imaging C module not installed 

Publiqué esta respuesta en el enlace que enviaste (gracias por eso), pero pensé que yo también publicaría en fuente. Lo siento por el post dupe.

Esperaba que hubiera una manera de hacer esto sin comstackr las cosas. Estoy usando virtualenv. Descubrí que si eliminaba mi instalación de env virtual y luego la reinstalaba con pip, la imagen comenzó a funcionar nuevamente. Estos pasos parecieron funcionar (nota, estoy usando OSX)

No estoy seguro de si esto importaba, pero comprobando si jpeg está instalado

 winesap:~ $ port installed | grep -i jpeg jpeg @7_0 jpeg @8a_0 (active) 

Asegúrate de que tengo PIP instalado

 sudo port -v install py26-pip 

Eliminar el antiguo entorno virtual que tenía y recrearlo.

 rm -rf ve virtualenv –no-site-packages –distribute ve . ./ve/bin/activate 

Instala pil y django en el virtualenv

 echo “pil” > requirements.pip echo “django” >> requirements.pip pip-2.6 install -E ./ve/ -r requirements.pip 

Prueba para ver si la importación funciona ahora. Tenga en cuenta la falta de desagradable error del módulo C

 python >>import import ImageFont >> 

Espero que esto sea útil.

En Windows, elimine _imaging.pyd y _imagingft.pyd dentro de C: \ Python27. Deje todos los módulos de _imagen dentro de la carpeta C: \ Python27 \ Lib \ site-packages \ PIL.

Esto funciona para mi.

Aquí hay algunas cosas que podrían ayudarle si la imagen from PIL import Image funciona pero la import _imaging falla. Si la Image falla también, vea la nota al final.

En Ubuntu 13.04 (raring), tuve este problema. Resulta que Ubuntu instala _imaging.so en un lugar que App Engine no espera: /usr/lib/python2.7/dist-packages lugar de /usr/lib/python2.7/dist-packages/PIL . Así que _imaging.so no estaba en ningún lugar en sys.path .

Aquí hay un par de maneras alrededor de esto:

Ponga los módulos PIL C en algún lugar ya en la ruta:

Noté que /path/to/google_appengine/lib/PIL-1.1.7 estaba en sys.path , pero el directorio no existía en mi instalación. Así que creé el directorio y copié los archivos .so en él, y todo funcionó. Tendría que hacer esto nuevamente, cada vez que actualice el SDK de App Engine, pero al menos no se mete con el código que está desarrollando.

Manipular sys.path en main.py :

Este código verificará si estamos ejecutando el servidor de aplicaciones dev, y si es así, agregaremos el directorio correcto a la ruta. Sin probar pero debería funcionar;)

 # Find _imaging.so and put its directory here. # `locate _imaging.so` or `dpkg -L python-imaging` PIL_PATH = '/usr/lib/pyshared/python2.7/' PRODUCTION_MODE = not os.environ.get( 'SERVER_SOFTWARE', 'Development').startswith('Development') if not PRODUCTION_MODE: sys.path.insert(PIL_PATH) 

Supongo que esto podría hacer más que solo los módulos PIL disponibles para usted, por lo que introduciría (aún más) diferencias entre desarrollo y producción. Además, esta técnica implica modificar el código fuente de su aplicación, lo que parece una mala decisión si hay más de una persona que la desarrolla.


Nota : Si la import Image falla, es posible que haya olvidado agregar la biblioteca PIL a su app.yaml .

 libraries: - name: PIL version: "latest" 

Es posible que deba reiniciar su dev_appserver.py después de agregar esta biblioteca para que los cambios se reflejen, por ejemplo, en la consola interactiva.

¿Por qué existe el problema, es con PIL 1.1.6? (solo 1.1.7), ¿es que la versión 1.1.6 no usa estas bibliotecas?

PIL 1.1.6 también usa su biblioteca interna de C para acelerar las cosas.

Para Windows debes usar los paquetes precomstackdos. http://www.pythonware.com/products/pil/ ofrece binarios de Windows X86 para 1.1.7. Es posible que se encuentre con un problema con 1.1.7 binarios de Windows. La biblioteca freetype C hace referencia a un CRT de depuración que no está disponible en todas las máquinas. Puede parchear fácilmente el archivo _imagingft.pyd con un editor hexadecimal.

Me faltaban por completo los archivos _imaging.* En la carpeta lib/site-packages/PIL .

Descargué el huevo desde aquí (el archivo correcto depende de la plataforma):

https://pypi.python.org/pypi/Pillow/2.7.0

lo renombré de .egg a .zip and copied all the files in the folder PIL that start with _imaging to the folder lib / site-packages / PIL`.

.. Problema resuelto

En Ubuntu, el siguiente comando me ayudó (gracias a esta respuesta en askubuntu ):

 sudo apt-get install libjpeg62:i386