web-dev-qa-db-fra.com

Bibliothèque PIL/JPEG: "jpeg décodeur non disponible"

J'ai essayé d'utiliser PIL pour effectuer des travaux au format JPEG dans mon application Django avec PIL, mais je reçois cet IOError .. je ne sais pas quoi faire.

""decoder jpeg not available""

Le décodeur JPEG de mon serveur me manque-t-il? Si oui, comment puis-je résoudre ce problème?

51
Brian D

Vous devez d'abord installer la bibliothèque jpeg, puis réinstaller votre PIL. Par exemple, j'utilise CentOS, pour installer libjpeg, je lance

Sudo yum install -y libjpeg-devel

Cela dépend de quel type de linux vous utilisez. Et ici, vous devez enlever l'ancien PIL

rm -rf /usr/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.Egg/

Puis installez le PIL

Sudo easy_install PIL
55
Fang-Pen Lin

J'ai trouvé cette réponse de l'auteur "edward"

Sur Ubuntu, PIL ne trouve pas les fichiers de la bibliothèque jpeg, même une fois qu’ils sont installés. Le moyen le plus simple de résoudre ce problème consiste à créer un lien symbolique après avoir installé le package dev jpeg. Donc, il me fallait une étape supplémentaire:

pour OS x64

pip uninstall PIL
Sudo apt-get install libjpeg8-dev
Sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
pip install PIL

pour x32

pip uninstall PIL
Sudo apt-get install libjpeg8-dev
Sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
pip install PIL

Je confirme que cela fonctionne pour moi sur Ubuntu Linux 12.04.


Si vous êtes un utilisateur Mac, vous devez installer Xcode et les outils de ligne de commande. Lisez comment faire cela

72
Anton Danilchenko

Une réponse plus forte peut être trouvée à installer pil sur virtualenv avec libjpeg

Pour moi, ce qui a finalement fonctionné sur Ubutu a été:

pip uninstall PIL
Sudo apt-get install libjpeg8-dev
pip install PIL

La bibliothèque d’image (PIL) Python semble vraiment difficile en ce qui concerne la version et l’emplacement des bibliothèques jpeg. Et comme PIL est écrit en C et compilé, vous avez besoin des versions développement de la bibliothèque en plus des versions d'exécution.

20
Bryce

Je n'ai pas les privilèges Sudo, car je suis sur un serveur bluehost partagé. Je ne peux donc exécuter aucune de ces commandes Sudo apt-get jpeg. J'ai fini par courir

pip uninstall pil
pip install pillow

et apparemment, pillow a pu trouver un support pour les jpegs.

6
Chase Roberts

Il y a un fichier selftest.py dans votre dossier d'installation de Imaging, essayez:

python selftest.py

vous verrez quelque chose comme ça:

--------------------------------------------------------------------
*** PIL CORE support not installed
*** TKINTER support not installed
--- JPEG support ok
--- ZLIB (PNG/Zip) support ok
*** FREETYPE2 support not installed
*** LITTLECMS support not installed
--------------------------------------------------------------------

si le support JPEG n'est pas disponible, Centos:

yum install libjpeg-devel
yum install freetype-devel 
yum install libpng-devel
3
hahakubile

Pour les utilisateurs de mac, vous pouvez télécharger la bibliothèque à partir d’ici: http://ethan.tira-thompson.com/Mac_OS_X_Ports.html . Ensuite, désinstallez et installez PIL

2
cmaluenda

Sur les distributions Debian, utilisez libjpeg62-turbo-dev au lieu de libjpeg8-dev

0
Steve

Vous pouvez construire PIL depuis le source: http://effbot.org/zone/pil-decoder-jpeg-not-available.htm

0
TryPyPy