2011-10-04 15 views
25

Sto usando Ubuntu e VitualEnv per il mio progetto Django.installazione PIP PIL -E BIGLIETTI-1 - Nessun supporto JPEG/PNG

Ho installato la libreria PIL utilizzando Synaptic Package Manager e funziona correttamente. Ma quando creo un VitrualEnv e provo ad installare PIL utilizzando pip è installes ma ottengo questo strano comportamento:

-------------------------------------------------------------------- 
PIL 1.1.7 SETUP SUMMARY 
-------------------------------------------------------------------- 
version  1.1.7 
platform  linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
       [GCC 4.5.2] 
-------------------------------------------------------------------- 
*** TKINTER support not available 
*** JPEG support not available 
*** ZLIB (PNG/ZIP) support not available 
*** FREETYPE2 support not available 
*** LITTLECMS support not available 
-------------------------------------------------------------------- 
To add a missing option, make sure you have the required 
library, and set the corresponding ROOT variable in the 
setup.py script. 

Speravo che posso usare requirements.txt per tutte le mie dipendenze, ma può essere PIL dovuto essere in qualche modo installato manualmente ... ma come?

Edit: Grazie John Keyes, hai ragione, ho eseguito:

sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/ 
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/ 

e dopo un altro tentativo per PIL installare ottengo:

-------------------------------------------------------------------- 
PIL 1.1.7 SETUP SUMMARY 
-------------------------------------------------------------------- 
version  1.1.7 
platform  linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53) 
       [GCC 4.5.2] 
-------------------------------------------------------------------- 
*** TKINTER support not available 
--- JPEG support available 
--- ZLIB (PNG/ZIP) support available 
--- FREETYPE2 support available 
*** LITTLECMS support not available 
- ------------------------------------------------------------------- 
To add a missing option, make sure you have the required 
library, and set the corresponding ROOT variable in the 
setup.py script. 

Edit: Potrebbe essere necessario installa libfreetype6-dev libjpeg8-dev

Modifica: Un'altra buona opzione è utilizzare Pillow anziché PIL

risposta

4

Una soluzione che sembra funzionare per noi (come di PIL 1.7.7) è quella di disinstallare PIL prima e poi Pillow e quindi pip installare cuscino - upgrade. Ovviamente è necessario avere installato libjpeg8-dev.

+2

Grazie, ho provato un sacco di cose, ma questo era l'unico che ha risolto! – deweydb

+0

pensato che potrebbe essere utile: http://pythonadventures.wordpress.com/2013/05/19/problems-with-pil-use-pillow-instead/ – user2290820

+0

L'utilizzo di Pillow è una soluzione goole. – x4snowman

5

E solo nel caso in cui, se si utilizza virtualenv, non è necessario avere bisogno di creare link simbolici a livello di sistema, ecco la soluzione universale che funziona su qualsiasi architettura:

ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libz.so $VIRTUAL_ENV/lib/ 
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libfreetype.so $VIRTUAL_ENV/lib/ 
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libjpeg.so $VIRTUAL_ENV/lib/ 

E avete bisogno per eseguire questa linea all'interno della sessione shell virtualenv, i link simbolici verranno creati all'interno della directory virtualenv lib.

Il comando dpkg-architecture -qDEB_HOST_MULTIARCH viene utilizzato per rilevare la directory libs del sistema principale (uname -i non è affidabile). E la variabile di ambiente $VIRTUAL_ENV è impostata dallo script virtualenv activate.

Problemi correlati