installare pil su virtualenv con libjpeg
-
09-10-2019 - |
Domanda
Attualmente sto installando PIL nel mio ENV virtuale come segue:
pip install -E . -r ./releases/%s/requirements.txt
dove requirements.txt contiene:
pil
posso caricare immagini png, ma le immagini non jpeg attualmente. Dalla lettura sul web sembra che io avere bisogno di decoder libjpeg? Am I Installazione pil in modo errato? Qual è il modo corretto di installare pil per Django in un env virtuale con libjpeg?
Soluzione
È necessario installare le librerie che gli altri raccomandati, ma soprattutto si dovrebbe dire PIL dove trovarli. Modificare il setup.py in modo che
JPEG_ROOT = None
diventa ??p>
JPEG_ROOT = libinclude("/usr/lib")
Ho trovato che il modo più semplice è stato quello di scaricare il sorgente con PIP ma non installare:
pip install --no-install PIL
modifica la configurazione (all'interno della cartella di generazione dell'ambiente virtuale) e l'installazione
pip install PIL
è possibile trovare qualche informazione in più nel mio blog
Si può anche provare a cuscino che sembra fare grande lavoro con poca fatica (pip install cuscino)
Altri suggerimenti
Su Ubuntu preciso, PIL non trova i file di libreria jpeg, anche una volta che sono installati. Il modo più semplice per risolvere questo problema è quello di fare un collegamento simbolico dopo aver installato il pacchetto dev jpeg. Così, ho bisogno di un passo in più:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
pip install PIL
Per Ubuntu 11.04, ciò che alla fine ha funzionato per me è:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL
La Python Imaging Library (PIL) sembra molto esigente sulla versione e la posizione delle librerie jpeg. E poiché PIL è scritto in C e compilato, è necessario il sviluppo versioni della libreria in aggiunta alle versioni runtime.
La situazione è così male la comunità biforcuta PIL per creare una versione più morbida: Pillow: http://pypi.python.org/pypi/Pillow#why-a-fork
In OSX, ho usato il seguente binario per ottenere libpng e libjpeg tutto il sistema installato contemporaneamente:
Perché ho già avuto PIL installato (tramite pip su un virtualenv), mi sono imbattuto:
pip uninstall PIL
pip install PIL --upgrade
Questa risolto l'errore decoder JPEG not available
per me.
È necessario installare le librerie:
sudo aptitude install libjpeg62 libjpeg62-dev zlib1g-dev
se PIP genera un errore, provare easy_install PIL