libreria - python library image
La biblioteca de imágenes de Python falla con el mensaje "decodificador JPEG no disponible"-PIL (15)
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?
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!
En Fedora 17 tuve que instalar libjpeg-devel
y luego reinstalar PIL
:
sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL
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
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
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 forma de avatar de Django:
raise IOError("decoder %s not available" % decoder_name)
OSError: decoder jpeg not available
Luego revisé el repositorio 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
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 compilar 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)
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 !!
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!
Para aquellos en OSX, usé el siguiente binario para instalar libpng y libjpeg en todo el sistema:
Como ya tenía instalado PIL (a través de pip en un virtualenv), ejecuté:
pip uninstall PIL
pip install PIL --upgrade
Esto resolvió el error del decoder JPEG not available
para mí.
ACTUALIZACIÓN (4/24/14) :
Las versiones más recientes de pip requieren marcas adicionales para descargar bibliotecas (incluida PIL) de fuentes externas. Intenta 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
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
Se requiere que libjpeg-dev sea capaz de procesar jpegs con almohada (o PIL), por lo que debe instalarlo y luego volver a compilar la almohada. También parece que se necesita libjpeg8-dev en Ubuntu 14.04
Sin embargo, si aún está usando 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 seguir con PIL, entonces 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
).
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
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 reciente).
Al final, todo lo que hizo falta fue reinstalar Pillow
:
sudo pip uninstall Pillow
sudo pip install Pillow
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
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ó