zainstaluj poduszkę na Ubuntu 14.04

11

Jestem szalony z Pillow. Już tu pytam, nie rozwiązując:

Instalacja Python Django Mezzanine nie powiodła się dla pakietu Pillow

Mam Ubuntu 14.04 i python 2.7.

Instalując poduszkę za pomocą pip lub z github mam ten błąd:

x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/_imaging.o: File o directory non esistente
x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/decode.o: File o directory non esistente
x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/encode.o: File o directory non esistente
x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/map.o: File o directory non esistente
x86_64-linux-gnu-gcc: error: build/temp.linux-x86_64-2.7/display.o: File o directory non esistente
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

----------------------------------------
Cleaning up...
Command /usr/bin/python -c "import setuptools, tokenize;__file__='/tmp/pip_build_root/Pillow/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-ctXrZt-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip_build_root/Pillow
Traceback (most recent call last):
 File "/usr/bin/pip", line 9, in <module>
load_entry_point('pip==1.5.4', 'console_scripts', 'pip')()
 File "/usr/lib/python2.7/dist-packages/pip/__init__.py", line 185, in main
return command.main(cmd_args)
 File "/usr/lib/python2.7/dist-packages/pip/basecommand.py", line 161, in main
text = '\n'.join(complete_log)
 UnicodeDecodeError: 'ascii' codec can't decode byte 0xe2 in position 28: ordinal not in range(128)

Oczywiście śledzę to również:

Instalacja PIL w Ubuntu 14.04.1 LTS

Może występuje konflikt bibliotek. Próbuję usunąć wszystko i zainstalować ponownie, ale zawsze mam ten sam błąd.

Masz sugestię?

franco_b
źródło
Użyłeś sudo do zainstalowania poduszki, prawda?
don.joey
na pewno też używam sudo.
franco_b
Zapomniałeś wspomnieć, że używasz virtualenv. Dezaktywuj swoją virtualenv. Zamontuj system poduszek szeroko sudo apt-get install python-pil. Ponownie aktywuj swojego virtualenv. Uruchom sudo pip install pillow.
don.joey
Zainstalowałem już najnowszą wersję Python-Pila, zresztą masz rację. Zapomniałem powiedzieć, że wykonałbym poduszkę przy użyciu virtualenv
franco_b

Odpowiedzi:

18

Po pierwsze, potrzebujesz pakietu python-dev, ponieważ Pillow wymaga zdefiniowanych nagłówków kompilacji.

sudo apt-get install python-dev

W systemie Ubuntu 14.04 potrzebujesz kilku dodatkowych pakietów, aby poduszka działała. Zainstaluj je wszystkie za pomocą polecenia:

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk

Działa to zarówno dla Pythona 2.x, jak i Pythona 3.x. Być może nie potrzebujesz ich wszystkich, ale przynajmniej powinieneś zainstalować libjpeg8-devi zlib1g-devobsługiwać JPEG i PNG.

Jeśli używasz Ubuntu 12.04, użyj następującego polecenia.

sudo apt-get install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev python-tk

Szczegółowe instrukcje można znaleźć w oficjalnej dokumentacji poduszki.

Montaż - dokumentacja poduszki (widelca PIL) 2.6.1

Tony Joseph
źródło
1
Dla uruchomienia w python 3$ sudo apt-get install python3-dev
Michael Radionov
1
sudo apt-get install python-dev python-setuptools

i

sudo apt-get install libtiff5-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.6-dev tk8.6-dev python-tk
Manuel
źródło
2
Rozwiń trochę swoją odpowiedź.
TheWanderer
1
Witamy w Ask Ubuntu! Zalecam edycję tej odpowiedzi, aby rozszerzyć ją o szczegółowe informacje na temat tego, jak to zrobić. (Zobacz także Jak napisać dobrą odpowiedź? Zawiera ogólne porady na temat tego, jakie rodzaje odpowiedzi są uważane za najbardziej wartościowe w Ask Ubuntu.)
David Foerster,
To właściwie najbardziej poprawna odpowiedź. Nie rozumiem do końca, dlaczego został odrzucony, a potem ktoś zastąpił go nową odpowiedzią - czy powinien był zostać zmodyfikowany z większą ilością wyjaśnień, nie?
benjaoming
Działa to dla mnie na Debianie 8, ale musiałem usunąć libjpeg8-dev z listy.
Programster
0

spróbuj zainstalować te zależności programistyczne:

sudo apt-get install python-dev python-setuptools
Ros
źródło
1
Chociaż może to technicznie odpowiedzieć na pytanie, zwykle lepiej jest podać trochę wyjaśnienia, co to zrobi, zamiast samych surowych poleceń.
RPiAwesomeness,
0

Oprócz powyższych instalacji nadal miałem powyższy błąd podczas instalowania poduszki.

Aby naprawić błąd, przejdź do / usr / include:

cd /usr/include

Utwórz dowiązanie symboliczne, wskazując na katalog freetype2:

ln -s freetype2 freetype
Ramon
źródło