Installazione di PIL con pip


349

Sto cercando di installare PIL (la libreria di imaging Python) usando il comando:

sudo pip install pil

ma ricevo il seguente messaggio:

Downloading/unpacking PIL
  You are installing a potentially insecure and unverifiable file. Future versions of pip will default to disallowing insecure files.
  Downloading PIL-1.1.7.tar.gz (506kB): 506kB downloaded
  Running setup.py egg_info for package PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

Installing collected packages: PIL
  Running setup.py install for PIL
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py
    --- using frameworks at /System/Library/Frameworks
    building '_imaging' extension
    clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o
    unable to execute clang: No such file or directory
    error: command 'clang' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/private/tmp/pip_build_root/PIL/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-AYrxVD-record/install-record.txt --single-version-externally-managed:
    WARNING: '' not a valid package name; please use only.-separated package names in setup.py

running install

running build

.
.
.
.

copying PIL/XVThumbImagePlugin.py -> build/lib.macosx-10.8-intel-2.7

running build_ext

--- using frameworks at /System/Library/Frameworks

building '_imaging' extension

creating build/temp.macosx-10.8-intel-2.7

creating build/temp.macosx-10.8-intel-2.7/libImaging

clang -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -IlibImaging -I/System/Library/Frameworks/Python.framework/Versions/2.7/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _imaging.c -o build/temp.macosx-10.8-intel-2.7/_imaging.o

unable to execute clang: No such file or directory

error: command 'clang' failed with exit status 1

----------------------------------------
Cleaning up

La prego di aiutarmi a installare PIL ??


Hai installato Xcode e quindi installato gli strumenti da riga di comando di Xcode? Sembra che tu non abbia il compilatore clang.
Fiver

Risposte:


586
  1. Installare Xcode e Xcode Command Line Tools come indicato.
  2. Usa invece Pillow, poiché PIL è praticamente morto. Il cuscino è una forcella mantenuta di PIL.

https://pypi.python.org/pypi/Pillow/2.2.1

pip install Pillow

Se hai entrambi i Python installati e vuoi installarlo per Python3:

python3 -m pip install Pillow

5
Ho avuto un clangerrore su OSX Mavericks quando ho provato questo, ma ho scoperto che questa risposta mi ha aiutato a
farlo

34
Sebbene questa sia una risposta valida e utile, in realtà non risponde alla domanda. Per quelli di noi in procinto di ridisegnare vecchi progetti che potrebbero richiedere di riempire una dipendenza PIL solo in modo da poter trovare la prossima cosa che si romperà, in realtà abbiamo bisogno di ottenere la dipendenza effettiva (e talvolta abbiamo anche bisogno di ottenere una versione specifica su cui qualcuno ha creato un hack).
Namey,

3
@Namey Il porting del codice PIL esistente su Pillow può essere fatto facilmente . Porta PIL a cuscino . Il cuscino si basa sul codice PIL ed è diventato una versione migliore, moderna e più amichevole di PIL.
GiriB,

7
@GiriB Grazie per l'aggiornamento. Il mio punto principale è che ci sono spesso casi in cui stai iniziando a lavorare su un codice di produzione legacy in cui ci sono 20 dipendenze antiche, di cui PIL potrebbe essere una, e devi eseguire il debug di qualcosa per effettuare una correzione nel codice di produzione. In tal caso, sicuramente non devi scrivere porte per il codice collegato a ~ 10 librerie diverse sulla tua build di sviluppo solo per iniziare il debug dell'errore di una riga che si sta verificando nell'ambiente di produzione. Spero che questo chiarisca.
Nome

Sto cercando di utilizzare una libreria che utilizza import Image. C'è un modo per convincere Pillow a fornire l'immagine?
AnnanFay,

60

Questo funziona per me:

apt-get install python-dev
apt-get install libjpeg-dev
apt-get install libjpeg8-dev
apt-get install libpng3
apt-get install libfreetype6-dev
ln -s /usr/lib/i386-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/i386-linux-gnu/libz.so /usr/lib

pip install PIL  --allow-unverified PIL --allow-all-external

9
Su piattaforme a 64 bit, il percorso collegato deve essere diverso, ad esempio /usr/lib/x86_64-linux-gnu/libfreetype.so. Per una soluzione più indipendente dall'architettura, creare collegamenti come# ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
Mark Chackerian,

Sempre lo stesso problema per le intestazioni di imaging: _imagingft.c: 73: 31: errore irreversibile: tipo / fterrors.h: nessun file o directory #include <tipo / fterrors.h> Quindi è necessario installare Python-imaging tramite pip
c24b,

Sempre un problema nelle intestazioni freetype come menzionato qui [ askubuntu.com/questions/507459/… ? SOlution: cd / usr / include ln -s freetype2 freetype
c24b

1
sotto ubuntu 14.04 è necessario 1 altro link simbolico sudo ln -s /usr/include/freetype2 /usr/local/include/freetype
Akasha,

1
ha funzionato bene per me il segreto era il --allow-non verificato PIL --allow-all-external
eusoubrasileiro

54

È molto semplice usando apt install usare questo comando per farlo

sudo apt-get install python-PIL

o

sudo pip install pillow

o

sudo easy_install pillow

2
non dimenticare di riavviare il server notebook ipython se ne stai eseguendo uno.
shousper,

sudo pip install pillow ha funzionato per me. sudo apt-get install python-PIL no.
Yu Shen,

1
Ho scoperto che fa distinzione tra maiuscole e minuscole quindi: sudo apt-get install python-PIL => Fallito (nessun pacchetto trovato) sudo apt-get install python-pil => Funzionato
Clarkey252

35

Su Mac OS X, usa questo comando:

sudo pip install https://effbot.org/media/downloads/Imaging-1.1.7.tar.gz

ha funzionato anche su debian jessy !, dovevo solo installare python-dev in anticipo :)
Agey

1
Prima dovevo installare libjpeg: brew install libjpeg
Pierre F,

Finalmente una soluzione reale. Il mio Mac non ha apt-get: p e comunque voglio installarlo in un virtualenv.
sudo,

usa sudo pip installa il cuscino - come sotto.
johndpope,

33

È necessario installare come descritto qui :

pip install image

26

Ho ottenuto la risposta da una discussione qui :

Provai

pip install --no-index -f http://dist.plone.org/thirdparty/ -U PIL

e ha funzionato.


8
Considera l'utilizzo di questo: pip install --no-index -f http://effbot.org/downloads/ -U PIL --trusted-host effbot.orgil motivo per cui ho usato questo è perché è l'URL elencato dal pacchetto e su pypi.python.org/pypi/PIL
Tom Myddeltyn

1
Ho ricevuto un avviso per utilizzare HTTPS anziché HTTP. Dopo aver cambiato l'URL ha funzionato alla grande.
AnnanFay,

@TomMyddeltyn Che ha quasi funzionato, tranne per il fatto che ho riscontrato un errore del compilatore in cui non è stato possibile trovare X11 / Xlib.h
Non comune

@Non comune Non sono sicuro di quale sia il problema, mi dispiace.
Tom Myddeltyn il

21

Installare

pip install Pillow

Quindi, basta importare nel tuo file come,

from PIL import Image

Sto usando Windows. Funziona per me.

NOTA :

Pillow è un sostituto funzionale per la libreria di imaging Python. Per eseguire il codice esistente compatibile con PIL con Pillow, è necessario modificarlo per importare il modulo Imaging dallo spazio dei nomi PIL anziché dallo spazio dei nomi globale.

cioè cambiamento:

import Image

per:

from PIL import Image

https://pypi.org/project/Pillow/2.2.1/


Grazie! Quando from PIL import Imageho letto il nome "PIL" non ho mai potuto indovinare il nome di questa libreria come "cuscino". Sono anche su Windows e la tua soluzione ha funzionato per me.
Marcos Buarque,

Pillow è un sostituto funzionale per la libreria di imaging Python. Per eseguire il codice esistente compatibile con PIL con Pillow, è necessario modificarlo per importare il modulo Imaging dallo spazio dei nomi PIL anziché dallo spazio dei nomi globale. Valeimport Image a dire: a from PIL import Image pypi.org/project/Pillow/2.2.1
Chandan Sharma

Grazie per le ulteriori informazioni sul bckground!
Marcos Buarque,

12

Suppongo che tu sia su Mac. Vedi Come posso installare PIL su mac os x 10.7.2 Lion

Se usi [homebrew] [], puoi installare il PIL con just brew install pil. Potrebbe quindi essere necessario aggiungere la directory di installazione ( $(brew --prefix)/lib/python2.7/site-packages) a PYTHONPATH o aggiungere la posizione della directory PIL stessa in un file chiamato PIL.pthfile in una qualsiasi directory dei pacchetti del sito, con il contenuto:

/usr/local/lib/python2.7/site-packages/PIL

(supponendo che lo brew --prefixsia /usr/local).

In alternativa, puoi semplicemente scaricarlo / compilarlo / installarlo dal sorgente:

# download
curl -O -L http://effbot.org/media/downloads/Imaging-1.1.7.tar.gz
# extract
tar -xzf Imaging-1.1.7.tar.gz
cd Imaging-1.1.7
# build and install
python setup.py build
sudo python setup.py install
# or install it for just you without requiring admin permissions:
# python setup.py install --user

Ho eseguito quanto sopra in questo momento (su OSX 10.7.2, con XCode 4.2.1 e System Python 2.7.1) e ha funzionato bene, anche se c'è la possibilità che qualcosa nel mio ambiente non sia predefinito.

[homebrew]: http://mxcl.github.com/homebrew/ "Homebrew"


Mentre questo spiega come installare pil, non lo fa tramite il modo in pipcui OP ha provato inizialmente. Trovo che l'uso abbondante di brewtutto il web in questi giorni non sia ottimale. brewinstallerà un po 'di sovraccarico a seconda di ciò che vuoi che faccia. quindi pipsarebbe probabilmente la scelta migliore per i moduli Python.
mknaf,

11

In questi giorni, tutti usano Pillow, un'amichevole forcella PIL, rispetto a PIL.

Invece di: sudo pip install pil

Fare: sudo pip install pillow

$ sudo apt-get install python-imaging
$ sudo -H pip install pillow

Consiglierei di non farlo mai sudo pip install .... Ciò potrebbe finire per interrompere l'installazione del sistema di Python, che potrebbe influire sulle applicazioni del sistema. Prova a utilizzare gli ambienti virtuali Anaconda , Venv o Docker.
n1k31t4,

11

Per Ubuntu, PIL non funziona più. Ottengo sempre:

Nessuna distribuzione corrispondente trovata per PIL

Quindi installa python-imaging:

sudo apt-get install python-imaging

6

Sto riscontrando lo stesso problema, ma viene risolto con l'installazione di python-dev.

Prima di installare PIL, eseguire il comando seguente:

sudo apt-get install python-dev

Quindi installare PIL:

pip install PIL

10
Questo non ha funzionato per me su Ubuntu 14. pip install pilrisulta No distributions at all found for PIL, sia che installi prima python-dev o meno.
aliteralmind,

5

Ho avuto degli errori durante l'installazione. Nel caso qualcuno lo abbia anche questo. Nonostante ciò ero già seduto sotto l'utente amministratore, ma non root.

File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/os.py", line 157, in makedirs
    mkdir(name, mode)
OSError: [Errno 13] Permission denied: '/Library/Python/2.7/site-packages/PIL'

Storing debug log for failure in /Users/wzbozon/Library/Logs/pip.log

L'aggiunta di "sudo" ha risolto il problema, con sudo ha funzionato:

~/Documents/mv-server: $ sudo pip install Pillow

5

Per CentOS:

yum install python-imaging

5

Ho provato tutte le risposte, ma non ci sono riuscito. Ottieni direttamente la fonte dal sito ufficiale e costruisci con successo l'installazione.

  1. Vai al sito http://www.pythonware.com/products/pil/#pil117
  2. Fare clic su "Kit sorgente Python Imaging Library 1.1.7" per scaricare il sorgente
  3. tar xf Imaging-1.1.7.tar.gz
  4. cd Imaging-1.1.7
  5. sudo python setup.py install


3

Prova questo:

sudo pip install PIL --allow-external PIL --allow-unverified PIL

2
Sebbene questa risposta possa essere corretta, si prega di aggiungere alcune spiegazioni. Impartire la logica di base è più importante che fornire semplicemente il codice, perché aiuta l'OP e altri lettori a risolvere da soli questo e simili problemi.
CodeMouse92,

Nota che questo comando è scaduto per me. Comunque, sarà deprecato tra qualche settimana. sudo pip install --allow-external --allow-unverified PIL PILpotrebbe funzionare anche per ora.
Statistiche di apprendimento con l'esempio del

3
--allow-externale --allow-unverifiedsono entrambi deprecati. pip install pillowè la risposta corretta.
Dorian,

1
La risposta che ho pubblicato mi è stata suggerita dallo stderr. Quindi, mentre la mia risposta non è più aggiornata, non era al momento in cui l'ho scritta. Inoltre, chiedo scusa per il mio messaggio diretto a JasonMc92 (che è stato rimosso). Il mio tono era fuori linea, ma il mio sentimento rimane. C'è qualcosa di disgustoso nel trollare la prima pagina e nel copiare / incollare la tua nota sul "impartire la logica sottostante". Forse stai inseguendo il badge, e immagino che vada bene, ma per motivi di coerenza, ti preghiamo di lasciare un commento su tutte le altre risposte simili a questa domanda che non riescono a sottostimare la logica.
Alfonso,


3
  • Per prima cosa dovresti eseguire questo sudo apt-get build-dep python-imagingche ti darà tutte le dipendenze di cui potresti aver bisogno

  • Quindi corri sudo apt-get update && sudo apt-get -y upgrade

  • Seguito da sudo apt-get install python-pip

  • E infine installa Pil pip install pillow


2

Cerca in Gestione pacchetti prima di utilizzare pip. Su Arch Linux puoi ottenere PILpacman -S python2-pillow


0

C'è un altro strumento di pacchetto Python chiamato conda . Conda è preferito (credo) su pip quando ci sono librerie che devono installare C ++ e altri binding che non sono Python puro. Conda include anche pip nella sua installazione in modo da poter continuare a utilizzare pip, ma si ottengono anche i vantaggi di conda.

Conda installa anche IPython , pil e molte altre librerie per impostazione predefinita. Penso che ti piacerà.

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.