2010-06-19 15 views
15

Tengo PIL (biblioteca de imágenes Python) instalado.Error PIL: El módulo _imaging C no está instalado

Cuando corro Python:

import PIL 
import Image 
import _imaging 

no consigo errores. Sin embargo, cuando se ejecuta mi aplicación, se plantea

The _imaging C module not installed 
+0

Tuve el mismo problema. La instalación limpia de ** PIL 1.1.7 ** (actualmente más reciente) además de la instalación limpia en ** python 2.7.8 ** (actualmente más reciente) corrigió el problema. Asegúrate de que tu pitón 2.7 sea ** de 32 bits **. –

Respuesta

3

he publicado esta respuesta en el enlace que ha enviado (gracias por eso), pero pensé que había puesto en la fuente también. Perdón por la publicación de engaño.

Tenía la esperanza de que hubiera una manera de hacer esto sin volver a compilar cosas. Estoy usando virtualenv. Descubrí que si destruía mi instalación env virtual y luego volvía a instalarla con pip, las imágenes volvían a funcionar. Estos pasos parecían funcionar (nota, estoy usando OSX)

No

seguro si esto importaba, pero la comprobación para ver si se instala jpeg

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

Asegúrese de que tengo PIP instalado

sudo port -v install py26-pip 

Retire el entorno virtual que tenía y volver a crearlo

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

Instalar pil y Djan entre en el virtualenv

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

Pruebe para ver si la importación funciona ahora. Tenga en cuenta la falta de un molesto error en el módulo C

python 
>>import import ImageFont 
>> 

Espero que esto sea útil.

+0

Sí, no hay problema, el mío se basó únicamente en apache puro mod_wsgi django y python – ApPeL

3

En Windows, quite _imaging.pyd y _imagingft.pyd dentro de C: \ Python27. Deje todos los módulos de creación de imágenes dentro de la carpeta C: \ Python27 \ Lib \ site-packages \ PIL.

Funciona para mí.

2

Aquí hay algunas cosas que pueden ayudarle si from PIL import Image funciona pero import _imaging falla. Si también falla Image, consulte 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 en lugar de /usr/lib/python2.7/dist-packages/PIL. Entonces _imaging.so no estaba en ningún lugar en sys.path.

Aquí hay un par de maneras de evitar esto:

puso a los módulos PIL C en algún lugar ya en el camino:

Noté que /path/to/google_appengine/lib/PIL-1.1.7 fue 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 de nuevo, cada vez que actualiza el SDK de App Engine, pero al menos no se mezcla con el código que está desarrollando.

Manipular sys.path en main.py:

Este código será comprobar si estamos corriendo el servidor de aplicaciones dev, y si es así, añadir el directorio correcto de la vía. No probado 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 algo más que los módulos PIL disponibles para usted, por lo que introduciría (aún más) las diferencias entre el desarrollo y la producción. Además, esta técnica implica modificar el código fuente de tu aplicación, lo que parece una mala llamada si hay más de una persona desarrollándola.


Nota: Si import Image falla, podría haber olvidado de añadir la biblioteca PIL a su app.yaml.

libraries: 
- name: PIL 
    version: "latest" 

Es posible que tenga que reiniciar su dev_appserver.py después de añadir esta biblioteca para que los cambios se reflejarán en, por ejemplo, la consola interactiva.

0

qué existe el problema, se ofrecen con el PIL 1.1.6? (solo 1.1.7), ¿Es que la versión 1.1.6 no utiliza estas bibliotecas?

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

Para Windows debe usar los paquetes precompilados. 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 C de freetype 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.

+0

¿Podría ayudarnos en detalle a cómo reparar la referencia CRT en el archivo _imagingft.pyd con el editor hexadecimal? Gracias – egesuato

+0

Consulte las soluciones aquí y vea si esto ayuda https://bitbucket.org/effbot/pil-117/issues/1/windows-build-of-_imagingft-module-fails. Examínelos detenidamente y realice copias de seguridad antes de probar las soluciones – Transformer

0

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

he descargado el huevo de aquí (el archivo correcto depende de la plataforma):

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

renombraron 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

Cuestiones relacionadas