La bibliothèque d'images Python échoue avec le message "decoder JPEG not available" - PIL
PIL supporte JPEG dans mon système.
chaque fois que je fais un téléchargement, mon code échoue avec:
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
comment résoudre ce problème?
15 réponses
libjpeg-dev est nécessaire pour pouvoir traiter les jpegs avec pillow (ou PIL), vous devez donc l'installer et ensuite recompiler pillow. Il semble également que libjpeg8-dev soit nécessaire sur Ubuntu 14.04
si vous utilisez toujours PIL alors vous devriez vraiment utiliser l'oreiller ces jours-ci cependant, donc d'abord pip uninstall PIL
avant de suivre ces instructions pour passer, ou si vous avez une bonne raison de coller avec PIL puis remplacer" oreiller "par" PIL " dans le ci-dessous).
Sur 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 cela ne fonctionne pas, essayez un des suivants, selon que vous êtes sur 64bit ou 32bit Ubuntu.
Pour 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
ou pour 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/
puis réinstaller l'oreiller:
pip install --no-cache-dir -I pillow
(modifications pour inclure la rétroaction des commentaires. Remercie Charles Offenbacher d'avoir souligné cette différence pour 32bit, et t-mart pour avoir suggéré l'utilisation de --no-cache-dir
).
pour ceux sur OSX, j'ai utilisé le binaire suivant pour obtenir libpng et libjpeg installé à l'échelle du système:
parce que J'avais déjà PIL installé( via pip sur un virtualenv), j'ai couru:
pip uninstall PIL
pip install PIL --upgrade
cela a résolu l'erreur decoder JPEG not available
pour moi.
mise à JOUR (4/24/14) :
nouvelles versions de pip nécessitent des drapeaux supplémentaires pour télécharger les bibliothèques (y compris PIL) à partir de sources externes. Essayez ce qui suit:
pip install PIL --allow-external PIL --allow-unverified PIL
Voir la réponse suivante pour plus d'infos: pip install PIL ne pas installer dans virtualenv
UPDATE 2 :
si sur OSX Mavericks, vous voulez mettre le drapeau ARCHFLAGS
comme @RicardoGonzales commentaires ci-dessous :
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install PIL --allow-external PIL --allow-unverified PIL
C'est la seule façon qui a fonctionné pour moi. Installer des paquets et réinstaller PIL n'a pas fonctionné.
sur ubuntu, installer le paquet requis:
sudo apt-get install libjpeg-dev
(vous pouvez aussi installer libfreetype6 libfreetype6-dev zlib1g-dev
pour activer d'autres décodeurs).
remplacer ensuite PIL par pillow:
pip uninstall PIL
pip install pillow
les travaux suivants sur 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
lorsque vous voyez "-- JPEG de soutien disponible" qui signifie qu'il fonctionne.
mais, si cela ne fonctionne toujours pas lorsque vous éditez votre image jpeg, vérifiez le chemin python !!
mon chemin python a manqué /usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
, donc j'édite le ~/.bashrc
ajouter le code suivant à ce fichier:
Edit: export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/
alors, enfin, ça marche!!!!
sur Fedora 17 j'ai dû installer libjpeg-devel
et ensuite réinstaller PIL
:
sudo yum install --assumeyes libjpeg-devel
sudo pip-python install --upgrade PIL
la réponse de Rolo est excellente, mais j'ai dû réinstaller Pillow en contournant pip cache (introduit avec pip 7) sinon il ne sera pas correctement recompilé!!! La commande est:
pip install -I --no-cache-dir -v Pillow
et vous pouvez voir si Oreiller a été correctement configuré en lisant dans les journaux:
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
--------------------------------------------------------------------
comme vous pouvez le voir, le support de jpg, tiff et ainsi de suite est activé, car j'ai déjà installé les bibliothèques nécessaires via apt (libjpeg-dev libpng12-dev libfreetype6-dev libtiff-dev)
sur Mac OS X Mavericks (10.9.3), j'ai résolu cela en faisant ce qui suit:
installer libjpeg par brew (système de gestion des paquets)
brew install libjpeg
réinstaller oreiller (j'utilise oreiller au lieu de PIL)
pip install-je l'oreiller
apt-get install libjpeg-dev
apt-get install libfreetype6-dev
apt-get install zlib1g-dev
apt-get install libpng12-dev
installez ceux-ci et assurez-vous d'installer PIL avec pip parce que je l'ai compilé à partir de la source et pour une raison quelconque, il n'a pas fonctionné
j'utilisais déjà Pillow
et j'ai eu la même erreur.
J'ai essayé d'installer libjpeg
ou libjpeg-dev
comme suggéré par d'autres, mais on m'a dit qu'une version (plus récente) était déjà installée.
à la fin tout ce qu'il a fallu était de réinstaller Pillow
:
sudo pip uninstall Pillow
sudo pip install Pillow
je suis trop débutant pour commenter zeantsoi post ;(. Voici donc son ce que je devais faire pour résoudre sur OSX le 10.9.1 le
IOError: décodeur jpeg n'est pas disponible
1) installer des outils Xcode (ouvrir votre terminal et exécuter: xcode-select --install
) - tiré de ce post: ne peut pas installer PIL après Mac OS X 10.9
2) installer libpng et libjpeg package (combo installer) depuis ce lien: http://ethan.tira-thompson.com/Mac_OS_X_Ports.html
3) reboot (pas sûr que ce soit obligatoire)
4) Re-installer PIL run pip install -I PIL
(comme je l'avais d'abord installé la LIP avant d'avoir la question)
espère que cette AIDE et ne plus confondre ...
_oho
cette question a été postée il y a un certain temps et la plupart des réponses sont assez anciennes. Alors, quand j'ai passé des heures à essayer de comprendre cela, rien n'a fonctionné, et j'ai essayé toutes les suggestions dans ce post.
je recevais encore les erreurs JPEG standard en essayant de télécharger un JPG dans ma forme Avatar Django:
raise IOError("decoder %s not available" % decoder_name)
OSError: decoder jpeg not available
puis j'ai vérifié le dépôt Pour Ubuntu 12.04 et j'ai remarqué quelques paquets supplémentaires pour libjpeg
. J'ai installé ces et mon le problème a été résolu:
sudo apt-get install libjpeg62 libjpeg62-dev
installant ces supprimés libjpeg-dev
, libjpeg-turbo8-dev
, et libjpeg8-dev
.
Espérons que cela aide quelqu'un dans l'année 2015 et au-delà!
Cheers
même problème ici, JPEG support available
mais j'ai quand même IOError: decoder/encoder jpeg not available
, sauf que j'utilise un oreiller et pas de PIL.
j'ai essayé tout ce qui précède et plus, mais après beaucoup heures, je me suis rendu compte que l'utilisation de sudo pip install
ne fonctionne pas comme je l'espérais, en combinaison avec virtualenv
. Je suis bête.
utilisant sudo
lance effectivement la commande dans un nouveau shell (ma compréhension de ceci peut ne pas être entièrement correcte) où le virtualenv n'est pas activé, ce qui signifie que les paquets seront installés dans l'environnement global à la place. (Ce gâché les choses, je pense que j'ai eu 2 installations différentes de l'Oreiller.)
j'ai nettoyé les choses, changé utilisateur root et réinstallé dans le virtualenv et maintenant ça fonctionne.
J'espère que cela va aider quelqu'un!
Pour Fedora
Install pre-required
151980920 sudo dnf install make automake gcc gcc-c++ kernel-devel rpm-build libjpeg-devel zlib-devel python-devel
Maintenant, installez Pillow
sudo pip install pillow
Note - pour libjpeg et zlib, nous installons libjpeg-devel et zlib-devel paquets dans Fedora / CentOS /Red Hat
tout d'abord, j'ai dû supprimer les dossiers python dans hidden folder user/appData (qui créait d'énormes maux de tête), en plus de désinstaller Python. Puis j'ai installé la Distribution WinPython: http://code.google.com/p/winpython / qui comprend PIL
pour ceux sur Mac OS Mountain Lion, j'ai suivi l'anwser de zeantsoi, mais ça ne marche pas.
j'ai finalement fini avec la solution de ce post: http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart /
maintenant, je suis heureux de lancer mon script pour jpeg !