La biblioteca de imágenes de Python falla con el mensaje “decodificador JPEG no disponible” – PIL

PIL soporta JPEG en mi sistema.

Cada vez que hago una carga, mi código falla con:

File "PIL/Image.py", line 375, in _getdecoder raise IOError("decoder %s not available" % decoder_name) IOError: decoder jpeg not available 

¿Cómo puedo resolver esto?

Se requiere que libjpeg-dev sea capaz de procesar jpegs con almohada (o PIL), por lo que necesita instalarlo y luego volver a comstackr la almohada. También parece que se necesita libjpeg8-dev en Ubuntu 14.04

Sin embargo, si aún sigue utilizando PIL, realmente debería estar usando una almohada, así que primero pip uninstall PIL antes de seguir estas instrucciones para cambiar, o si tiene una buena razón para quedarse con PIL, reemplace “almohada” con “PIL”. en el siguiente).

En Ubuntu:

 # install libjpeg-dev with apt sudo apt-get install libjpeg-dev # if you're on Ubuntu 14.04, also install this sudo apt-get install libjpeg8-dev # reinstall pillow pip install --no-cache-dir -I pillow 

Si eso no funciona, pruebe uno de los siguientes, dependiendo de si está en Ubuntu de 64 bits o 32 bits.

Para Ubuntu x64:

 sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib 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 

O para Ubuntu 32bit:

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

Luego vuelva a instalar la almohada:

 pip install --no-cache-dir -I pillow 

(Edita para incluir comentarios de los comentarios. Gracias Charles Offenbacher por señalar esto difiere para 32 bits, y t-mart por sugerir el uso de --no-cache-dir ).

Para aquellos en OSX, usé el siguiente binario para instalar libpng y libjpeg en todo el sistema:

libpng y libjpeg para OSX

Como ya tenía instalado PIL (a través de pip en un virtualenv), corrí:

 pip uninstall PIL pip install PIL --upgrade 

Esto resolvió el error del decoder JPEG not available para mí.

ACTUALIZACIÓN (24/04/14) :

Las versiones más recientes de pip requieren marcas adicionales para descargar bibliotecas (incluida PIL) de fonts externas. Intente lo siguiente:

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

Consulte la siguiente respuesta para obtener información adicional: pip install PIL no se instala en virtualenv

ACTUALIZACIÓN 2 :

Si está en OSX Mavericks, querrá establecer la ARCHFLAGS como @RicardoGonzales comentarios a continuación :

 ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install PIL --allow-external PIL --allow-unverified PIL 

Esta es la única manera que funcionó para mí. Instalar paquetes y reinstalar PIL no funcionó.

En ubuntu, instale el paquete requerido:

 sudo apt-get install libjpeg-dev 

(Es posible que también desee instalar libfreetype6 libfreetype6-dev zlib1g-dev para habilitar otros decodificadores).

Luego reemplace PIL con almohada:

 pip uninstall PIL pip install pillow 

Los siguientes trabajos en Ubuntu 12.04:

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

cuando vea “- Soporte de JPEG disponible” significa que funciona.

Pero, si todavía no funciona cuando edites tu imagen jpeg, ¡comprueba la ruta de python! mi ruta de acceso a python perdió /usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/ , así que edito el ~/.bashrc agregue el siguiente código a este expediente:

Edición: export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/

entonces, finalmente, funciona !!

En Fedora 17 tuve que instalar libjpeg-devel y luego reinstalar PIL :

 sudo yum install --assumeyes libjpeg-devel sudo pip-python install --upgrade PIL 

La respuesta de Rolo es excelente, sin embargo, tuve que reinstalar Pillow sin pasar por el caché de pip (introducido con pip 7) ¡de lo contrario no se volverá a comstackr correctamente! El comando es:

 pip install -I --no-cache-dir -v Pillow 

y puede ver si Pillow se ha configurado correctamente leyendo en los registros esto:

 PIL SETUP SUMMARY -------------------------------------------------------------------- version Pillow 2.8.2 platform linux 3.4.3 (default, May 25 2015, 15:44:26) [GCC 4.8.2] -------------------------------------------------------------------- *** TKINTER support not available --- JPEG support available *** OPENJPEG (JPEG2000) support not available --- ZLIB (PNG/ZIP) support available --- LIBTIFF support available --- FREETYPE2 support available *** LITTLECMS2 support not available *** WEBP support not available *** WEBPMUX support not available -------------------------------------------------------------------- 

Como puede ver, el soporte para jpg, tiff, etc. está habilitado, porque anteriormente instalé las bibliotecas requeridas a través de apt (libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)

En Mac OS X Mavericks (10.9.3), resolví esto haciendo lo siguiente:

Instale libjpeg by brew (sistema de gestión de paquetes)

brew install libjpeg

reinstalar la almohada (yo uso almohada en lugar de PIL)

pip instalar -I almohada

 apt-get install libjpeg-dev apt-get install libfreetype6-dev apt-get install zlib1g-dev apt-get install libpng12-dev 

Instala estos y asegúrate de instalar PIL con pip porque lo compilé desde la fuente y por alguna razón no funcionó

Ya estaba usando Pillow y obtuve el mismo error. Se intentó instalar libjpeg o libjpeg-dev según lo sugerido por otros, pero se le dijo que ya se había instalado una versión (más nueva).

Al final, todo lo que hizo falta fue reinstalar Pillow :

 sudo pip uninstall Pillow sudo pip install Pillow 

Soy demasiado novato para comentar la publicación de zeantsoi; (. Así que aquí está lo que tenía que hacer para resolverlo en OSX el 10.9.1 del

IOError: decoder jpeg no disponible

1) instale las herramientas de Xcode (abra su terminal y ejecute: xcode-select --install ) – tomado de esta publicación: No puedo instalar PIL después de Mac OS X 10.9

2) instale el paquete libpng y libjpeg (combo installer) desde este enlace: http://ethan.tira-thompson.com/Mac_OS_X_Ports.html

3) reinicio (no estoy seguro de que fuera obligatorio)

4) Vuelva a instalar PIL con ejecutar pip install -I PIL (ya que inicialmente había instalado PIL antes de tener el problema)

Espero que esta ayuda y no confundas más …

_oho

Esta pregunta se publicó hace bastante tiempo y la mayoría de las respuestas también son bastante antiguas. Entonces, cuando pasé horas tratando de resolver esto, nada funcionó, e intenté todas las sugerencias en esta publicación.

Todavía estaba recibiendo los errores estándar de JPEG al intentar cargar un archivo JPG en mi formulario de avatar de Django:

 raise IOError("decoder %s not available" % decoder_name) OSError: decoder jpeg not available 

Luego revisé el repository para Ubuntu 12.04 y noté algunos paquetes adicionales para libjpeg . Instalé estos y mi problema se resolvió:

 sudo apt-get install libjpeg62 libjpeg62-dev 

La instalación de estos libjpeg-dev , libjpeg-turbo8-dev y libjpeg8-dev .

Espero que esto ayude a alguien en el año 2015 y más allá!

Aclamaciones

El mismo problema aquí, la JPEG support available pero aún tengo IOError: decoder/encoder jpeg not available , excepto que uso Pillow y no PIL.

Intenté todo lo anterior y más, pero después de muchas horas me di cuenta de que el uso de sudo pip install no funciona como esperaba, en combinación con virtualenv . Tonto de mí.

El uso de sudo efectivamente el comando en un nuevo shell (mi entendimiento de esto puede no ser del todo correcto) donde virtualenv no está activado, lo que significa que los paquetes se instalarán en el entorno global. (Esto arruinó las cosas, creo que tuve 2 instalaciones diferentes de Pillow).

Limpié las cosas, cambié de usuario a root y reinstalé en el virtualenv y ahora funciona.
¡Espero que esto ayude a alguien!

Para fedora

Instalar requisito previo
sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
Ahora instala la almohada

sudo pip install pillow

Nota: para libjpeg y zlib estamos instalando los paquetes libjpeg-devel y zlib-devel en Fedora / CentOS / Red Hat

Primero tuve que eliminar las carpetas de python en la carpeta oculta user / appData (que estaba creando grandes dolores de cabeza), además de desinstalar Python. Luego instalé WinPython Distribution: http://code.google.com/p/winpython/ que incluye PIL

Para aquellos en Mac OS Mountain Lion, seguí la respuesta de zeantsoi, pero no funciona.

Finalmente terminé con la solución de este post: http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

Ahora, estoy felizmente ejecutando mi script para jpeg!