Niepowodzenie podczas instalacji Pillow (modułu Python) w systemie Linux

165

Próbuję zainstalować Pillow (moduł Pythona) za pomocą pip, ale zgłasza ten błąd:

ValueError: jpeg is required unless explicitly disabled using --disable-jpeg, aborting

Więc jak mówi błąd, próbowałem:

pip install pillow --global-option="--disable-jpeg"

Ale zawodzi z:

error: option --disable-jpeg not recognized

Jakieś wskazówki, jak sobie z tym poradzić?

mchfrnc
źródło

Odpowiedzi:

324

Jest to błąd zgłoszone do Pillow tutaj , co oznacza, że libjpegi zlibobecnie wymagany jako poduszki 3.0.0.

Te instrukcje instalacji dla poduszką na Linux daje rady jak zainstalować te pakiety. Zwróć uwagę, że nie wszystkie z poniższych pakietów mogą być niedostępne na Twoim komputerze (komentarze sugerują, że libjpeg8-devfaktycznie brakuje).

pip / PyPi (Poduszka> 3.4.2)

Te ostatnie komunikaty poduszki dostępne są na PyPI jak koła - nowy standard mechanizm opakowanie dla Pythona. Te wstępnie skompilowane pakiety zawierają wszystkie niezbędne zależności binarne, aby umożliwić działanie Pillow i powinny być używane, jeśli chcesz zainstalować Pillow za pomocą PyPi

Aby korzystać z kół, musisz mieć wersję pip>=1.4. Jeśli używasz wcześniejszej wersji ( pip --version) aktualizacji pip przy użyciu następującego:

pip install --upgrade pip 

Po pipuaktualnieniu pip installbędzie domyślnie używać plików kół specyficznych dla platformy, jeśli są dostępne. Użyj następującego polecenia, aby zaktualizować Pillow do najnowszej wersji dostępnej na PyPi:

pip install --upgrade pillow

Ubuntu 12.04 LTS lub Raspian Wheezy 7.0

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

Ubuntu 14.04

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

Ubuntu 18.04

sudo apt install libjpeg8-dev zlib1g-dev

Fedora 20

Odpowiednik Fedory 20 libjpeg8-devto libjpeg-devel.

sudo yum install libtiff-devel libjpeg-devel libzip-devel freetype-devel lcms2-devel libwebp-devel tcl-devel tk-devel

Mac OS X (przez Homebrew)

W systemie Mac OS X z Homebrew można to naprawić za pomocą:

brew install libjpeg zlib

Konieczne może być również wymuszenie połączenia zlib za pomocą:

brew link zlib --force

Aktualizacja kwiecień 2019: W Mojave powyższe nie będzie działać i musisz uruchomić następujące elementy zaczerpnięte z tego raportu o błędzie w Pillow

sudo installer -pkg /Library/Developer/CommandLineTools/Packages/macOS_SDK_headers_for_macOS_10.14.pkg -target /

Aktualizacja lipiec 2016: Nie ma już formuły zlibdostępnej w głównym repozytorium (Homebrew wyświetli monit o zainstalowanie lzlibinnej biblioteki i nie rozwiąże tego problemu).

W repozytorium duplikatów dostępna jest formuła . Możesz dotknąć tego repozytorium i zainstalować normalnie:

brew tap homebrew/dupes
brew install zlib

Lub możesz zainstalować zlibza pośrednictwem xcodezamiast tego w następujący sposób:

xcode-select --install

Podziękowania dla Phoenix, Panos Angelopoulou, Nelsonvarela, Benjaminz i Kal w komentarzach

Po ich zainstalowaniu instalacja rurowa Pillow powinna działać normalnie.

mfitzp
źródło
2
Po prostu libjpeg8-devmoże być w porządku.
Matheus Portela
3
Miałem ten sam problem z Mac OS X. Rozwiązuję go wykonując brew install libjpeg brew install zlib
Panos Angelopoulos,
2
Lepiej zainstaluj libjpeg-dev - bez numeru „8”, a następnie stwierdzisz, że brakuje również zlib1g-dev. Po: sudo apt-get install libjpeg-dev zlib1g-devinstalacja pip Pillow działała na Mint 17.1 (= Ubuntu 14.04 LTS).
arntg
6
Musiałem wymusić link zlib:brew link zlib --force
nelsonvarela
2
brew install zlibnie działa już na niektórych komputerach Mac, poniższe rozwiązanie xcode-select --installwydaje się działać, prosimy o zaktualizowanie rozwiązania, ponieważ jest ono najbardziej wszechstronne i jest pierwszym rozwiązaniem, które widzą użytkownicy. Dziękuję bardzo za Waszą pracę!
benjaminz
37

Na Raspberry pi II miałem ten sam problem. Po wykonaniu poniższych czynności rozwiązałem problem. Rozwiązaniem jest:

sudo apt-get update
sudo apt-get install libjpeg-dev
xjfengck
źródło
sudo apt-get install libjpeg-dev działało również dla Ubuntu 14):
Amir
34

Dziękuję @mfitzp. W moim przypadku (CentOS) te biblioteki nie są dostępne w repozytorium yum, ale w rzeczywistości rozwiązanie było jeszcze łatwiejsze. Co ja zrobiłem:

sudo yum install python-devel
sudo yum install zlib-devel
sudo yum install libjpeg-turbo-devel

A teraz instalacja poduszki kończy się pomyślnie.

mchfrnc
źródło
1
Dzięki, że zadziałało, chociaż nie potrzebowałem pythona-devel
Dustfinger - Przywróć Monikę
1
U mnie też działało, wystarczyło zainstalować pakiet libjpeg-turbo-devel!
kaycee
Pracowałem na CentOS 7 jak marzenie!
Raptor
Ten python-devel nie był wymagany na maszynie yum amazon linux. Myślę, że ostatnim pakietem był libjpeg-turbo-devel.
Neeraj Gupta
12

Najszybszym rozwiązaniem jest uaktualnienie pip. Pracował dla mnie:

pip install --upgrade pip
Aman Yadav
źródło
pracował dla mnie. Pip install Pillow (jeśli nie działa wyczyść pamięć podręczną przez pip install - upgrade pip) Następnie uruchom ponownie Pip install Pillow
Tzvi Gregory Kaidanov
To też zadziałało dla mnie. Mam Pythona 2.6.6 i 3.5.1 na maszynie wirtualnej CentOS i uruchomiłem pip3.5 install --upgrade pip3.5. Następnie pip3.5 install pillowdziałał bez żadnych problemów i zachował integralność instalacji Python2 i Python3.
Evan,
12

To zadziałało dla mnie.

   `sudo apt-get install libjpeg-dev`
Thomas John
źródło
10
brew install zlib

na OS X już nie działa i zamiast tego wyświetla monit o instalację lzlib. Instalacja to nie pomaga.

Zamiast tego instalujesz narzędzia wiersza poleceń XCode, które powinny zostać zainstalowane zlib

xcode-select --install
Kal
źródło
Trochę więcej wyjaśnień byłoby znacznie bardziej pomocne.
benjaminz
9

Pomogło mi to rozwiązać błąd jpeg i zlib:

C:\Windows\system32>pip3 install pillow --global-option="build_e
xt" --global-option="--disable-zlib" --global-option="--disable-jpeg"
B-shan
źródło
1
Musiałem zainstalować Pillow w środowisku, w którym nie mam dostępu do roota - to rozwiązanie zadziałało dla mnie.
Nielk
6

Miałem, ValueError: zlib is required unless explicitly disabled using --disable-zlibale aktualizacja pip z 7.x do 8.y rozwiązała problem.

Więc spróbuję zaktualizować narzędzia, zanim cokolwiek innego.

Można to zrobić za pomocą:

pip install --upgrade pip
Brambor
źródło
0

Próbować

pip install pillow

Jeśli to nie zadziała, spróbuj wyczyścić plik

cache by pip install --upgrade pip

Potem znowu biegnij

pip install pillow
Cwi Gregory Kaidanov
źródło
-2

Na debianie / ubuntu potrzebujesz tylko: libjpeg62-turbo-dev

Więc proste sudo apt install libjpeg62-turbo-dev ipip install pillow

Dean Brown
źródło