Instale PIL / Pillow a través de pip en las pruebas de Debian (Jessie)


19

En las pruebas de Debian (Jessie), cuando intento instalar PIL o Pillow (bibliotecas de imágenes de Python) en una virtualenvvía pip, aparece el siguiente error:

running egg_info
writing Pillow.egg-info/PKG-INFO
writing top-level names to Pillow.egg-info/top_level.txt
writing dependency_links to Pillow.egg-info/dependency_links.txt
warning: manifest_maker: standard file '-c' not found

reading manifest file 'Pillow.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Pillow.egg-info/SOURCES.txt'
running build_ext
building 'PIL._imaging' extension
creating build/temp.linux-x86_64-2.7/libImaging
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -IlibImaging -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c _imaging.c -o build/temp.linux-x86_64-2.7/_imaging.o
_imaging.c:76:20: fatal error: Python.h: No such file or directory
 #include "Python.h"
                    ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

He instalado todas las dependencias para Pillow, según mi experiencia con Wheezy, pero parece que algo es diferente con las pruebas.

¿Alguna sugerencia?

EDITAR

De hecho, descubrí otro problema con libc6. La versión que tenía era de experimental. Después de degradarlo a la versión de prueba, reinstalé todas las dependencias pero ahora recibo un error diferente:

building 'PIL._imagingft' extension
x86_64-linux-gnu-gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/freetype2 -IlibImaging -I/usr/include/tcl8.5 -I/usr/local/include -I/usr/include -I/usr/include/python2.7 -I/usr/include/x86_64-linux-gnu -c _imagingft.c -o build/temp.linux-x86_64-2.7/_imagingft.o
_imagingft.c:62:31: fatal error: freetype/fterrors.h: No such file or directory
 #include <freetype/fterrors.h>
                               ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Parece la versión experimental de las libc6cosas en mal estado, pero no puedo entender qué está mal. Aptitude no muestra dependencias insatisfechas y aptitude install -fno hace nada.

Además, si de hecho los encabezados de Linux son relevantes, los que he instalado son:

  • linux-headers-3.11-2-all
  • linux-headers-3.11-2-all-amd64
  • linux-headers-3.11-2-amd64
  • linux-headers-3.11-2-common
  • linux-headers-3.2.0-4-amd64
  • linux-headers-3.2.0-4-common
  • linux-headers-amd64

¿Instaló los encabezados del kernel (el error parece estar relacionado, de alguna manera)?
Braiam

1
Los encabezados de Linux son irrelevantes, faltan los encabezados de Python.
Dennis Kaarsemaker

Respuestas:


28

En Ubuntu 14.04 prueba:

sudo ln -s /usr/include/freetype2 /usr/local/include/freetype

23

Necesita los encabezados de desarrollo de Python y posiblemente otros paquetes de desarrollo. La forma más fácil de obtenerlos es:

sudo apt-get build-dep python-imaging

Ya lo intenté. De hecho, normalmente puedo instalarlo en todo el python-imagingsistema aptitude, aunque no intenté usarlo realmente.
Alxs

interesante. ¿Cuál es el resultado de ese comando?
Dennis Kaarsemaker

esto funcionó para mí en Ubuntu 14.04
Matt Parrilla

3

Después de instalar la versión de desarrollo de Pillow, también se resolvió el segundo problema. Puede estar relacionado con este problema .

En resumen, la solución fue:

  1. Instale las dependencias como dijo Dennis, que en mi caso también incluyó la degradación de la experimentalversión de libc6 con aptitude remove libc6, que le otorgó la opción a DOWNGRADEla versión del repositorio.

  2. Instalar la versión del maletero de la almohada con pip install git+git://github.com/python-imaging/Pillow.git


3

Estoy usando las pruebas de Debian 7, y para mí funcionó haciendo esto:

  1. Instalando las dependencias como dijo Dennis:

    $ sudo apt-get build-dep python-imaging
  2. Hacer un enlace simbólico como lo sugiere mrudult:

    $ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype
  3. Instale la almohada como de costumbre:

    $ pip install Pillow

1

En una nueva instalación de Ubuntu 14.04 en DigitalOcean, pude resolver este problema simplemente ejecutando

sudo apt-get install python-dev

y luego vuelva a ejecutar el comando pip install dentro de python venv

pip install Pillow
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.