Zainstaluj PIL / Pillow przez pip w testach Debiana (Jessie)


19

Podczas testowania Debiana (Jessie), kiedy próbuję zainstalować PIL lub Pillow (biblioteki obrazkowe Pythona) za virtualenvpośrednictwem, pojawia pipsię następujący błąd:

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

Zainstalowałem wszystkie zależności dla Pillow, oparte na moim doświadczeniu z Wheezy, ale wygląda na to, że coś jest innego w testowaniu.

Jakieś sugestie?

EDYTOWAĆ

W rzeczywistości odkryłem inny problem z libc6. Wersja, którą miałem, była z eksperymentu. Po obniżeniu wersji do wersji testowej ponownie zainstalowałem wszystkie zależności, ale teraz pojawia się inny błąd:

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

Wygląda na to, że eksperymentalna wersja libc6zawiodła, ale nie mogę zrozumieć, co jest nie tak. Aptitude nie wykazuje żadnych niespełnionych zależności i aptitude install -fnic nie robi.

Ponadto, jeśli rzeczywiście nagłówki linux są odpowiednie, to te, które zainstalowałem, to:

  • 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

Czy zainstalowałeś nagłówki jądra (błąd wydaje się być w jakiś sposób powiązany).
Braiam

1
Nagłówki Linuksa są nieistotne, brakuje nagłówków python.
Dennis Kaarsemaker,

Odpowiedzi:


28

W Ubuntu 14.04 spróbuj:

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

23

Potrzebujesz nagłówków programistycznych Python i ewentualnie innych pakietów programistycznych. Najłatwiejszym sposobem na ich zdobycie jest:

sudo apt-get build-dep python-imaging

Już tego próbowałem. W rzeczywistości mogę normalnie instalować w całym python-imagingsystemie aptitude, chociaż nie próbowałem go używać.
alxs

ciekawy. Jaki jest wynik tego polecenia?
Dennis Kaarsemaker,

to działało dla mnie w Ubuntu 14.04
Matt Parrilla

3

Po zainstalowaniu wersji rozwojowej Pillow rozwiązano również drugi problem. Może to być związane z tym problemem .

Podsumowując, rozwiązaniem było:

  1. Zainstaluj zależności, jak powiedział Dennis, co w moim przypadku obejmowało również obniżenie experimentalwersji libc6 aptitude remove libc6, co dało opcję do DOWNGRADEwersji repo.

  2. Instalowanie wersji bagażnika poduszki z pip install git+git://github.com/python-imaging/Pillow.git


3

Używam testów Debiana 7 i dla mnie to zadziałało:

  1. Instalowanie zależności, jak powiedział Dennis:

    $ sudo apt-get build-dep python-imaging
  2. Tworzenie dowiązania symbolicznego zgodnie z sugestią mrudult:

    $ sudo ln -s -T /usr/include/freetype2/ /usr/include/freetype
  3. Zainstaluj poduszkę jak zwykle:

    $ pip install Pillow

1

W nowej instalacji Ubuntu 14.04 na DigitalOcean mogłem rozwiązać ten problem, po prostu uruchamiając

sudo apt-get install python-dev

a następnie ponownie uruchom polecenie pip install w python venv

pip install Pillow
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.