Errore durante l'installazione di Pillow (modulo Python) in Linux


165

Sto cercando di installare Pillow (modulo Python) usando pip, ma genera questo errore:

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

Quindi, come dice l'errore, ho provato:

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

Ma fallisce con:

error: option --disable-jpeg not recognized

Qualche suggerimento su come gestirlo?

Risposte:


325

C'è un bug segnalato per Pillow qui , che indica che libjpege zlibora sono richiesti a partire da Pillow 3.0.0.

Le istruzioni di installazione di Pillow su Linux forniscono consigli su come installare questi pacchetti. Si noti che non tutti i seguenti pacchetti potrebbero mancare sul proprio computer (i commenti suggeriscono che in libjpeg8-devrealtà manca solo).

pip / PyPi (cuscino> 3.4.2)

Le ultime versioni di Pillow sono disponibili su PyPi come ruote : il nuovo meccanismo di imballaggio standard per Python. Questi pacchetti predefiniti includono tutte le dipendenze binarie necessarie per consentire l'esecuzione di Pillow e devono essere utilizzate se si desidera installare Pillow tramite PyPi

Per usare le ruote, devi avere una versione di pip>=1.4. Se si utilizza un pip --versionpip di aggiornamento versione precedente ( ) utilizzando quanto segue:

pip install --upgrade pip 

Una volta pipaggiornato, pip installutilizzerà i file della ruota specifici della piattaforma per impostazione predefinita se sono disponibili. Utilizzare il seguente comando per aggiornare Pillow all'ultima versione disponibile su PyPi:

pip install --upgrade pillow

Ubuntu 12.04 LTS o 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

L'equivalente di Fedora 20 libjpeg8-devè libjpeg-devel.

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

Mac OS X (tramite Homebrew)

Su Mac OS X con Homebrew questo può essere risolto usando:

brew install libjpeg zlib

Potrebbe inoltre essere necessario forzare il collegamento di zlib utilizzando quanto segue:

brew link zlib --force

Aggiornamento aprile 2019: in Mojave quanto sopra non funzionerà ed è necessario eseguire quanto segue come tratto da questa segnalazione di bug su Pillow

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

Aggiornamento luglio 2016: non esiste più una formula per zlibdisponibile nel repository principale (Homebrew ti chiederà di installare lzlibuna libreria diversa e non risolverà questo problema).

V'è una formula disponibile nella creduloni repository. Puoi toccare questo repository e installarlo normalmente:

brew tap homebrew/dupes
brew install zlib

In alternativa è possibile installare zlibvia xcode, invece, come segue:

xcode-select --install

Grazie a Phoenix, Panos Angelopoulou, Nelsonsonela, Benjaminz e Kal nei commenti

Dopo averli installati, l'installazione dei tubi di Pillow dovrebbe funzionare normalmente.


2
Basta libjpeg8-devpotrebbe andare bene.
Matheus Portela,

3
Stavo affrontando lo stesso problema per Mac OS X. Lo risolvo eseguendo brew install libjpeg brew install zlib
Panos Angelopoulos il

2
Meglio installare libjpeg-dev - senza '8', quindi ho anche scoperto che mancava anche zlib1g-dev. Dopo: sudo apt-get install libjpeg-dev zlib1g-devl'installazione pip Pillow ha funzionato su Mint 17.1 (= Ubuntu 14.04 LTS).
arntg

6
Ho dovuto forzare link zlib:brew link zlib --force
nelsonvarela,

2
brew install zlibnon funziona più su alcuni Mac, la soluzione di seguito xcode-select --installsembra fare il trucco, si prega gentilmente di aggiornare la soluzione in quanto è la più inclusiva ed è la prima soluzione che i visitatori vedono. Grazie tante per il tuo lavoro!
Benjaminz,

37

Su Raspberry PI II ho avuto lo stesso problema. Dopo aver provato quanto segue, ho risolto il problema. La soluzione è:

sudo apt-get update
sudo apt-get install libjpeg-dev

sudo apt-get install libjpeg-dev ha funzionato anche per Ubuntu 14):
Amir

34

Grazie @mfitzp. Nel mio caso (CentOS) queste librerie non sono disponibili nel repository yum, ma in realtà la soluzione era ancora più semplice. Cosa ho fatto:

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

E ora l'installazione del cuscino termina con successo.


1
Grazie che ha funzionato per me anche se non avevo bisogno del python-devel
Dustfinger - Reinstate Monica

1
Ha funzionato anche per me, dovevo solo installare il pacchetto libjpeg-turbo-devel!
Kaycee,

Ha lavorato su CentOS 7 come un incantesimo!
Raptor,

Questo python-devel non era richiesto sulla macchina yum linux di Amazon. Penso che l'ultimo libjpeg-turbo-devel fosse il pacchetto mancante.
Neeraj Gupta

12

La soluzione più rapida è migliorare il pip. Ha funzionato per me:

pip install --upgrade pip

ha funzionato per me. Pip install Pillow (se non funziona svuota la cache con pip install - aggiorna pip) Quindi esegui di nuovo Pip install Pillow
Tzvi Gregory Kaidanov

Questo ha funzionato anche per me. Ho Python 2.6.6 e 3.5.1 su una VM CentOS, e ho funzionato pip3.5 install --upgrade pip3.5. Successivamente, è stato pip3.5 install pilloweseguito senza problemi e ha mantenuto l'integrità delle installazioni Python2 e Python3.
Evan,

12

Questo ha funzionato per me.

   `sudo apt-get install libjpeg-dev`

10
brew install zlib

su OS X non funziona più e richiede invece l'installazione lzlib. L'installazione non aiuta.

Invece si installano gli strumenti della riga di comando XCode e che dovrebbe essere installato zlib

xcode-select --install

Una spiegazione in più sarebbe molto più utile.
Benjaminz,

9

Questo ha funzionato per me per risolvere l'errore jpeg e zlib:

C:\Windows\system32>pip3 install pillow --global-option="build_e
xt" --global-option="--disable-zlib" --global-option="--disable-jpeg"

1
Avevo bisogno di installare Pillow in un ambiente in cui non ho accesso root - questa è la soluzione che ha funzionato per me.
Nielk,

6

Ho avuto il ValueError: zlib is required unless explicitly disabled using --disable-zlibpip di aggiornamento ma da 7.x a 8.y risolto il problema.

Quindi proverei ad aggiornare gli strumenti prima di ogni altra cosa.

Questo può essere fatto usando:

pip install --upgrade pip


0

Provare

pip install pillow

Se non funziona, prova a cancellare il

cache by pip install --upgrade pip

Quindi di nuovo corri

pip install pillow

-2

Su debian / ubuntu hai solo bisogno di: libjpeg62-turbo-dev

Quindi un semplice sudo apt install libjpeg62-turbo-dev e unpip 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.