2012-09-23 20 views
14

Estoy siguiendo un tutorial de Django que implica la carga de imágenes y me he encontrado con este problema. Intenté instalar y reinstalar PIL, libjpeg y libfreetype6 varias veces, pero nada hasta ahora parece estar funcionando. He pasado varias horas tratando de encontrar una solución, y estoy muy frustrado en este punto. Por favor ayuda.Error de decodificador JPEG no disponible al seguir el tutorial de la aplicación de fotos Django

Aquí es el resultado de selftest.py después de que vuelva a instalar PIL en mi 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

es necesario instalar bibliotecas jpeg antes de instalar PIL, hay muchas instrucciones para hacerlo, p. ej .: http://stackoverflow.com/questions/8915296/decoder-jpeg-not-available-pil – dzida

+0

Si está en una Mac, puede usar [Brew] (http://mxcl.github.com/homebrew/) para instalar fácilmente libjpeg. Me encontré con dificultad antes, y [este enlace] (http://timetobefrank.blogspot.com.es/2011/05/installing-pil-on-mac-osx-with.html) también me ayudó. –

+0

Lukasz, eliminé PIL, instalé libfreetype, zlib y libjpeg; luego volví a instalar PIL, y sigo obteniendo el mismo error exacto en selftest.py ... – entrepaul

Respuesta

41

Hay varios casos con PIL que conducen a una experiencia similar. Si ha instalado PIL cabo de un virtualenv usando

pip install PIL 

entonces usted debe tener instalado el dev versiones de libjpeg, libz antes. Suponiendo que estés en un cuadro de Ubuntu, un

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

debería ser suficiente. También puede instalar Pillow en lugar de PIL, funciona mejor con setuptools y se puede instalar en virtualenv.

+7

Estoy en Mac OS X. ¿Podría explicarme cómo llevarlo a cabo? las instrucciones antes mencionadas en la Terminal? – entrepaul

+1

@entrepaul: Revise el comentario en el OP "Si está en una Mac, puede usar Brew ..." etc. –

+3

Solo como referencia, tuve que hacer 'pip uninstall PIL && brew install libjpeg && pip install PIL' en Mac OSX 10.8 para hacer que esto funcione. – Dogbert

7

me encontré con esto funcionó bien para mí:

pip uninstall PIL 
pip install Pillow 

luego reiniciar el servidor:

kill -HUP XXX 

donde XXX es el ID de proceso del proceso de su servidor.

4

Ya estaba usando Pillow y obtuve el mismo error. Intenté instalar libjpeg o libjpeg-dev según lo sugerido por otros pero me dijeron que ya estaba instalada una versión (más nueva).

En total final lo que hizo fue volver a instalar Pillow:

sudo pip uninstall Pillow 
sudo pip install Pillow 
+0

funcionó para mí también, gracias! – Stefan

0

En caso de que usted está usando Fedora, por favor, antes de hacer un pip instalar Almohada:

yum install libjpeg-devel zlib1g-devel libpng12-devel 
Cuestiones relacionadas