Installer PIL / Pillow via pip dans les tests Debian (Jessie)

19

Sur les tests Debian (Jessie), lorsque j'essaie d'installer PIL ou Pillow (bibliothèques d'imagerie python) dans un virtualenvvia, pipj'obtiens l'erreur suivante:

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

J'ai installé toutes les dépendances pour Pillow, sur la base de mon expérience avec Wheezy, mais il semble que quelque chose soit différent avec les tests.

Aucune suggestion?

ÉDITER

En fait, j'ai découvert un autre problème avec libc6. La version que j'avais était expérimentale. Après l'avoir rétrogradé à la version de test, j'ai réinstallé toutes les dépendances mais maintenant j'obtiens une erreur différente:

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

Il semble que la version expérimentale des libc6choses foirées, mais je ne peux pas comprendre ce qui ne va pas. Aptitude ne montre aucune dépendance non satisfaite et aptitude install -fne fait rien.

De plus, si en effet les en-têtes linux sont pertinents, ceux que j'ai installés sont:

  • 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
alxs
la source
Avez-vous installé les en-têtes du noyau (l'erreur semble être liée, d'une manière ou d'une autre).
Braiam
1
Les en-têtes Linux ne sont pas pertinents, ce sont les en-têtes python qui manquent.
Dennis Kaarsemaker

Réponses:

28

Dans Ubuntu 14.04, essayez:

sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
mududult
la source
23

Vous avez besoin des en-têtes de développement python et éventuellement d'autres packages de développement. Le moyen le plus simple de les obtenir est:

sudo apt-get build-dep python-imaging
Dennis Kaarsemaker
la source
J'ai déjà essayé ça. En fait, je peux normalement installer l'ensemble du python-imagingsystème avec aptitude, même si je n'ai pas essayé de l'utiliser réellement.
alxs
intéressant. Quelle est la sortie de cette commande?
Dennis Kaarsemaker
cela a fonctionné pour moi dans Ubuntu 14.04
Matt Parrilla
3

Après avoir installé la version de développement de Pillow, le deuxième problème a également été résolu. Cela peut être lié à ce problème .

Donc, pour résumer, la solution était:

  1. Installez les dépendances comme l'a dit Dennis, qui dans mon cas incluait également la rétrogradation de la experimentalversion de libc6 avec aptitude remove libc6, ce qui lui a donné l'option de la version du référentiel DOWNGRADE.

  2. Installation de la version coffre de l'oreiller avec pip install git+git://github.com/python-imaging/Pillow.git

alxs
la source
3

J'utilise les tests Debian 7, et pour moi, cela a fonctionné:

  1. Installer les dépendances comme l'a dit Dennis:

    $ sudo apt-get build-dep python-imaging
  2. Faire un lien symbolique comme le suggère mrudult:

    $ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype
  3. Installez Pillow comme d'habitude:

    $ pip install Pillow
Throoze
la source
1

Sur une nouvelle installation d'Ubuntu 14.04 sur DigitalOcean, j'ai pu résoudre ce problème en exécutant simplement

sudo apt-get install python-dev

puis relancez la commande pip install à l'intérieur du python venv

pip install Pillow
danske
la source