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?
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
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
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.
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.
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
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
Sur les distributions Debian, utilisez libjpeg62-turbo-dev au lieu de libjpeg8-dev
Vous pouvez construire PIL depuis le source: http://effbot.org/zone/pil-decoder-jpeg-not-available.htm