Je suis un tutoriel Django qui implique le téléchargement d’images, et j’ai rencontré ce problème. J'ai essayé d'installer et de réinstaller PIL, libjpeg et libfreetype6 plusieurs fois, mais rien ne semble fonctionner jusqu'à présent. J'ai passé plusieurs heures à essayer de trouver une solution et je suis très frustré à ce stade. S'il vous plaît aider.
Voici le résultat de selftest.py après la réinstallation de PIL sur mon mac:
PIL 1.1.6 BUILD SUMMARY
--------------------------------------------------------------------
version 1.1.6
platform darwin 2.7.3 (v2.7.3:70274d53c1dd, Apr 9 2012, 20:52:43)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)]
--------------------------------------------------------------------
--- TKINTER support ok
*** JPEG support not available
--- ZLIB (PNG/Zip) support ok
*** FREETYPE2 support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
rrdhcp-10-32-44-157:Imaging-1.1.6 pfg$ python selftest.py
*****************************************************************
Failure in example: _info(Image.open("Images/lena.jpg"))
from line #24 of selftest.testimage
Exception raised:
Traceback (most recent call last):
File "./doctest.py", line 499, in _run_examples_inner
exec compile(source, "<string>", "single") in globs
File "<string>", line 1, in <module>
File "./selftest.py", line 22, in _info
im.load()
File "PIL/ImageFile.py", line 180, in load
d = Image._getdecoder(self.mode, d, a, self.decoderconfig)
File "PIL/Image.py", line 375, in _getdecoder
raise IOError("decoder %s not available" % decoder_name)
IOError: decoder jpeg not available
1 items had failures:
1 of 57 in selftest.testimage
***Test Failed*** 1 failures.
*** 1 tests of 57 failed.
Il existe plusieurs cas de PIL qui conduisent à une expérience similaire. Si vous avez installé PIL à partir d’un serveur virtuel en utilisant:
pip install PIL
Ensuite, vous devriez avoir installé les dev versions de libjpeg, libz avant. En supposant que vous soyez sur une boîte Ubuntu, une
pip uninstall PIL
apt-get install libjpeg-dev zlib1g-dev libpng12-dev
pip install PIL
devrait suffire. Vous pouvez également installer Pillow au lieu de PIL, cela fonctionne mieux avec setuptools et peut être installé dans un virtualenv.
J'ai trouvé que cela fonctionnait bien pour moi:
pip uninstall PIL
pip install Pillow
puis j'ai redémarré le serveur:
kill -HUP XXX
oùXXXest l'ID de processus du processus de votre serveur.
J'utilisais déjà Pillow
et j'ai 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.
En fin de compte, tout ce que cela a pris était de réinstaller Pillow
:
Sudo pip uninstall Pillow
Sudo pip install Pillow
Si vous utilisez Fedora, faites-le avant d'installer un oreiller:
yum install libjpeg-devel zlib1g-devel libpng12-devel