2012-09-23 12 views
14

sto seguendo un tutorial Django che coinvolge caricamento delle immagini, e hanno eseguito in questo problema. Ho provato a installare e reinstallare PIL, libjpeg e libfreetype6 diverse volte, ma finora nulla sembra funzionare. Ho passato diverse ore a cercare una soluzione e sono molto frustrato a questo punto. Per favore aiuto.Decoder JPEG non è disponibile l'errore quando si segue Django app foto tutorial di

Ecco il risultato di selftest.py dopo reinstallo PIL sul mio Mac:

PIL 1.1.6 BUILD SUMMARY 
-------------------------------------------------------------------- 
version  1.1.6 
platform  darwin 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43) 
       [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] 
-------------------------------------------------------------------- 
--- TKINTER support ok 
*** JPEG support not available 
--- ZLIB (PNG/ZIP) support ok 
*** FREETYPE2 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. 

To check the build, run the selftest.py script. 
rrdhcp-10-32-44-157:Imaging-1.1.6 pfg$ python selftest.py 
***************************************************************** 
Failure in example: _info(Image.open("Images/lena.jpg")) 
from line #24 of selftest.testimage 
Exception raised: 
Traceback (most recent call last): 
    File "./doctest.py", line 499, in _run_examples_inner 
    exec compile(source, "<string>", "single") in globs 
    File "<string>", line 1, in <module> 
    File "./selftest.py", line 22, in _info 
    im.load() 
    File "PIL/ImageFile.py", line 180, in load 
    d = Image._getdecoder(self.mode, d, a, self.decoderconfig) 
    File "PIL/Image.py", line 375, in _getdecoder 
    raise IOError("decoder %s not available" % decoder_name) 
IOError: decoder jpeg not available 
1 items had failures: 
    1 of 57 in selftest.testimage 
***Test Failed*** 1 failures. 
*** 1 tests of 57 failed. 
+2

è necessario installare librerie jpeg prima di installare PIL, ci sono molte istruzioni su come farlo, ad esempio: http://stackoverflow.com/questions/8915296/decoder-jpeg-not-available-pil – dzida

+0

Se sei su un Mac, puoi usare [Brew] (http://mxcl.github.com/homebrew/) per installare facilmente libjpeg. Mi sono imbattuto in difficoltà in passato e [questo link] (http://timetobefrank.blogspot.com.es/2011/05/installing-pil-on-mac-osx-with.html) mi ha aiutato. –

+0

Lukasz, ho rimosso PIL, libfreetype installato, zlib, e libjpeg - poi reinstallato PIL, e sto ancora ricevendo lo stesso errore esatto sul selftest.py ... – entrepaul

risposta

41

Ci sono diversi casi con PIL che portano ad una simile esperienza. Se avete installato PIL da un virtualenv utilizzando

pip install PIL 

allora si dovrebbe avere installato il dev versioni di libjpeg, libz prima. supponendo che si sta su una casella di Ubuntu, un

pip uninstall PIL 
apt-get install libjpeg-dev zlib1g-dev libpng12-dev 
pip install PIL 

dovrebbe essere sufficiente. È anche possibile installare Pillow anziché PIL, funziona meglio con setuptools e può essere installato in un virtualenv.

+7

Sono su Mac OS X - Potrebbe spiegare come effettuare le istruzioni di cui sopra nel Terminale? – entrepaul

+1

@entrepaul: Controllare il commento alla OP "Se siete su un Mac, è possibile utilizzare Brew ..." ecc –

+3

Solo per riferimento, ho dovuto fare 'pip disinstallazione PIL && birra installare libjpeg && pip installare PIL' su Mac OS X 10.8 per farlo funzionare. – Dogbert

7

Ho trovato questo ha funzionato bene per me:

pip uninstall PIL 
pip install Pillow 

poi ho riavviato il server:

kill -HUP XXX 

dove XXX è l'ID di processo del processo server.

4

ero già usando Pillow e ottenuto lo stesso errore. Ho provato a installare libjpeg o libjpeg-dev come suggerito da altri, ma mi è stato detto che una versione (più recente) era già installata.

In tutto alla fine ci sono voluti era di reinstallare Pillow:

sudo pip uninstall Pillow 
sudo pip install Pillow 
+0

ha funzionato anche per me, grazie! – Stefan

0

Nel caso in cui si utilizza Fedora, si prega di fare, prima di fare un pip installare cuscino:

yum install libjpeg-devel zlib1g-devel libpng12-devel 
Problemi correlati