python python-imaging-library virtualenv

python - instalación de pip PIL-E TICKETS-1-No admite JPEG/PNG



python-imaging-library virtualenv (3)

Este hilo en los foros de Ubuntu cubre este tema.

Estoy usando Ubuntu y VitualEnv para mi proyecto Django.

Tengo la biblioteca PIL instalada con Synaptic Package Manager y está funcionando bien. Pero cuando creo un VitrualEnv e intento instalar PIL usando pip it installes, pero me sale este extraño comportamiento:

-------------------------------------------------------------------- PIL 1.1.7 SETUP SUMMARY -------------------------------------------------------------------- version 1.1.7 platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] -------------------------------------------------------------------- *** TKINTER support not available *** JPEG support not available *** ZLIB (PNG/ZIP) support not available *** FREETYPE2 support not available *** LITTLECMS support not available -------------------------------------------------------------------- To add a missing option, make sure you have the required library, and set the corresponding ROOT variable in the setup.py script.

Esperaba poder usar Requirements.txt para todas mis dependencias, pero es posible que PIL tenga que ser instalado de forma manual ... pero, ¿cómo?

Edit: Gracias John Keyes , tienes razón, corro:

sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/ sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/

y después de otro intento para instalar PIL obtengo:

-------------------------------------------------------------------- PIL 1.1.7 SETUP SUMMARY -------------------------------------------------------------------- version 1.1.7 platform linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) [GCC 4.5.2] -------------------------------------------------------------------- *** TKINTER support not available --- JPEG support available --- ZLIB (PNG/ZIP) support available --- FREETYPE2 support available *** LITTLECMS support not available - ------------------------------------------------------------------- To add a missing option, make sure you have the required library, and set the corresponding ROOT variable in the setup.py script.

Edición: es posible que necesite instalar libfreetype6-dev libjpeg8-dev

Edición: Otra buena opción es usar Pillow lugar de PIL


Una solución que parece funcionar para nosotros (a partir de PIL 1.7.7) es desinstalar PIL primero y luego Pillow y luego instalar una almohada de instalación. Por supuesto que necesitas tener libjpeg8-dev instalado.


Y por si acaso, si está usando virtualenv, no necesita crear enlaces simbólicos en todo el sistema, aquí está la solución universal que funciona en cualquier arquitectura:

ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libz.so $VIRTUAL_ENV/lib/ ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libfreetype.so $VIRTUAL_ENV/lib/ ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libjpeg.so $VIRTUAL_ENV/lib/

Y necesita ejecutar estas líneas dentro de la sesión de shell virtualenv, los enlaces simbólicos se crearán dentro de su directorio virtualenv lib .

El comando dpkg-architecture -qDEB_HOST_MULTIARCH se está utilizando para detectar el directorio de libs del sistema principal ( uname -i no es confiable). Y la variable de entorno $VIRTUAL_ENV se establece mediante el script de activate virtualenv.