Instalar PIL / Pillow via pip nos testes Debian (Jessie)

19

No teste do Debian (Jessie), quando tento instalar o PIL ou o Pillow (bibliotecas de imagens python) em uma virtualenvvia pip, recebo o seguinte erro:

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

Instalei todas as dependências do Pillow, com base na minha experiência com o Wheezy, mas parece que há algo diferente nos testes.

Alguma sugestão?

EDITAR

Na verdade, descobri outro problema com a libc6. A versão que eu tinha era de experimental. Após fazer o downgrade para a versão de teste, reinstalei todas as dependências, mas agora recebo um erro 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 a versão experimental de libc6coisas complicadas, mas não consigo descobrir o que está errado. O Aptitude não mostra nenhuma dependência aptitude install -fnão atendida e não faz nada.

Além disso, se os cabeçalhos do linux são relevantes, os que eu instalei são:

  • 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
fonte
Você instalou os cabeçalhos do kernel (o erro parece estar relacionado, de alguma forma).
Braiam
1
Os cabeçalhos do Linux são irrelevantes, faltam os cabeçalhos python.
Dennis Kaarsemaker

Respostas:

28

No Ubuntu 14.04, tente:

sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Mrudult
fonte
23

Você precisa dos cabeçalhos de desenvolvimento python e possivelmente de outros pacotes de desenvolvimento. A maneira mais fácil de obtê-los é:

sudo apt-get build-dep python-imaging
Dennis Kaarsemaker
fonte
Já tentei isso. De fato, normalmente posso instalar todo o python-imagingsistema aptitude, embora não tenha tentado realmente usá-lo.
alxs
interessante. Qual é a saída desse comando?
Dennis Kaarsemaker
isso funcionou para mim no Ubuntu 14.04
Matt Parrilla
3

Depois de instalar a versão de desenvolvimento do Pillow, o segundo problema também foi resolvido. Pode estar relacionado a esse problema .

Então, para resumir, a solução foi:

  1. Instale dependências como Dennis disse, que no meu caso também incluiu o downgrade da experimentalversão do libc6 aptitude remove libc6, que concedeu a opção para a versão do repositório DOWNGRADE.

  2. Instalando a versão de tronco do Pillow com pip install git+git://github.com/python-imaging/Pillow.git

alxs
fonte
3

Estou usando o teste Debian 7 e, para mim, funcionou fazendo isso:

  1. Instalando as dependências, conforme dito por Dennis:

    $ sudo apt-get build-dep python-imaging
  2. Criando um link simbólico conforme sugerido por mrudult:

    $ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype
  3. Instale o travesseiro como de costume:

    $ pip install Pillow
Throoze
fonte
1

Em uma nova instalação do Ubuntu 14.04 no DigitalOcean, consegui resolver esse problema simplesmente executando

sudo apt-get install python-dev

e, em seguida, executando novamente o comando pip install dentro do python venv

pip install Pillow
danske
fonte