Installa PIL / Pillow tramite pip nei test Debian (Jessie)


19

Sui test Debian (Jessie), quando provo ad installare PIL o Pillow (librerie di imaging Python) in un virtualenvvia pipottengo il seguente errore:

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

Ho installato tutte le dipendenze per Pillow, in base alla mia esperienza con Wheezy, ma sembra che qualcosa sia diverso con i test.

Eventuali suggerimenti?

MODIFICARE

In effetti ho scoperto un altro problema con libc6. La versione che avevo era sperimentale. Dopo aver eseguito il downgrade alla versione di test, ho reinstallato tutte le dipendenze ma ora viene visualizzato un errore diverso:

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

Sembra la versione sperimentale delle libc6cose incasinate, ma non riesco a capire cosa c'è che non va. Aptitude non mostra dipendenze aptitude install -fnon soddisfatte e non fa nulla.

Inoltre, se davvero le intestazioni linux sono rilevanti, quelle che ho installato sono:

  • 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

Hai installato le intestazioni del kernel (l'errore sembra che sia in qualche modo correlato).
Braiam,

1
Le intestazioni di Linux sono irrilevanti, mancano le intestazioni di Python.
Dennis Kaarsemaker,

Risposte:


28

In Ubuntu 14.04 prova:

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

23

Sono necessari gli header di sviluppo di Python e possibilmente altri pacchetti di sviluppo. Il modo più semplice per ottenerli è:

sudo apt-get build-dep python-imaging

Già provato. In effetti, normalmente posso installare tutto il python-imagingsistema con aptitude, anche se non ho provato a usarlo.
alxs

interessante. Qual è l'output di quel comando?
Dennis Kaarsemaker,

questo ha funzionato per me in Ubuntu 14.04
Matt Parrilla,

3

Dopo aver installato la versione di sviluppo di Pillow, anche il secondo problema è stato risolto. Potrebbe essere correlato a questo problema .

Quindi, per riassumere, la soluzione era:

  1. Installa le dipendenze come ha detto Dennis, che nel mio caso includeva anche il downgrade della experimentalversione di libc6 aptitude remove libc6, che gli garantiva l'opzione alla DOWNGRADEversione del repository.

  2. Installazione della versione tronco del cuscino con pip install git+git://github.com/python-imaging/Pillow.git


3

Sto usando i test di Debian 7 e per me ha funzionato nel modo seguente:

  1. Installare le dipendenze come detto da Dennis:

    $ sudo apt-get build-dep python-imaging
  2. Creare un collegamento simbolico come suggerito da mrudult:

    $ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype
  3. Installare il cuscino come al solito:

    $ pip install Pillow

1

Su una nuova installazione di Ubuntu 14.04 su DigitalOcean, sono stato in grado di risolvere questo problema semplicemente eseguendo

sudo apt-get install python-dev

e quindi rieseguire il comando pip install all'interno di Python Venv

pip install Pillow
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.