68 votes

A propos de l'erreur LIP -- IOError : decoder zip not available

Je reçois le :

IOError: decoder zip not available

lorsque j'essaie de dessiner une image et de l'enregistrer au format jpeg dans PIL. Avez-vous une idée de la façon de résoudre ce problème ? L'AIP a bien fonctionné pour moi dans le passé, lorsqu'il s'agissait de visualiser/télécharger des images.

115voto

Cory Points 1156
sudo pip uninstall PIL
sudo pip install pillow 

^^ l'a réparé pour moi.

Oreiller est un fork de PIL qui est compatible avec pip/setuptools et bénéficie d'une maintenance un peu meilleure. Je n'ai pas encore vu de différences entre les API.

Edit : Il y a une différence notable dans l'API. L'IAP expose Image comme un espace de nom de premier niveau, vous pouvez donc

import Image # in PIL only

mais

from PIL import Image  # in pillow or PIL
  • Merci, Leopd !

4 votes

J'ai réglé mon problème ! C'est beaucoup plus simple que de compiler PIL manuellement. Merci !

7 votes

Petite différence d'API - import Image fonctionne en LIP, pas en oreiller. L'oreiller requiert from PIL import Image

0 votes

Cela résout également le problème décrit ici : osdir.com/ml/python-numerique-general/2009-07/msg00124.html où le tableau numpy ne crée pas réellement un tableau, mais quelque chose comme <PngImagePlugin.PngImageFile instance at 0xd1a050> selon le type d'image. Je pense que le changement d'API a beaucoup de sens aussi...

41voto

yodi Points 408

L'installation plus détaillée PIL avec la bibliothèque zlib dans Ubuntu 64 bit :

http://obroll.com/install-python-pil-python-image-library-on-ubuntu-11-10-oneiric/

Pour les paresseux (crédits à @ meawoppl pour le apt-get ) :

$ sudo apt-get install libjpeg-dev zlib1g-dev

2 votes

Pour les paresseux : sudo apt-get install libjpeg-dev zlib1g-dev

1 votes

Si vous développez pour pebble et que vous venez ici parce que le décodeur zip n'est pas disponible. Installez ces bibliothèques et réinstallez pillow. En réinstallant pillow, la bibliothèque sera reconstruite avec ces dépendances incluses.

0 votes

Si cela ne fonctionne pas pour vous, consultez la réponse de JohnPang qui a fonctionné pour moi.

17voto

Johnny Zhao Points 719

J'ai rencontré ce problème sur un version de bureau 64bit ubuntu 13.04 et voici comment je l'ai résolu.

essayez de réinstaller PIL, et faites attention aux informations de sortie après la réinstallation :

---------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.4 (default, Sep 26 2013, 03:20:26)
              [GCC 4.7.3]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
*** ZLIB (PNG/ZIP) support not available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------

remarquez qu'il y a une ligne : *** ZLIB (PNG/ZIP) support not available , ce qui signifie que le PIL a été construit sans le support de ZLIB, et je l'ai corrigé en faisant ceci :

Vous devriez d'abord avoir installé ces paquets : libjpeg-dev libfreetype6-dev zlib1g-dev

sudo apt-get install python-dev libjpeg-dev libfreetype6-dev zlib1g-dev

# create these links, if already exists, remove it and re-link it
ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib
ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib

# reinstall PIL
pip uninstall PIL
pip install PIL

Cette fois, il devrait y avoir une ligne --- ZLIB (PNG/ZIP) support available dans la sortie.

Référence : http://jj.isgeek.net/2011/09/install-pil-with-jpeg-support-on-ubuntu-oneiric-64bits/

0 votes

Si vous voyez un _imagingft.c:73:31: fatal error: freetype/fterrors.h: No such file or directory erreur après cela, il suffit de relier une autre bibliothèque : ln -s /usr/include/freetype2 /usr/include/freetype2/freetype (Je crois que cela se produit si vous avez apt-get install python-imaging )

13voto

Jon-Eric Points 7749

Il n'a probablement besoin que du décodeur zip pour enregistrer le jpeg. Je pense que j'avais besoin de suivre ces étapes dans OS X pour prévisualiser les jpegs.

Cela signifie probablement que vous devez le faire :

1 votes

Vous pouvez télécharger la zlib et ensuite réinstaller Pil avec Pip. Vous ne devriez pas avoir besoin de le construire à partir des sources.

0 votes

Problèmes liés aux JEPG et PNG de Mac OS X PIL Ce post m'a aidé à résoudre le problème des PNG et JPEG avec l'IAP. ( zip du décodeur non disponible y décodeur jpeg non disponible )

8voto

chiwai Points 11

J'ai rencontré le même problème. Il me semble que Pillow et pillow (différence de casse dans 'p') sont deux paquets différents. Donc, si vous utilisez Pillow, pip install pillow pourrait ne pas aider. Voici ma solution :

$ pip uninstall pillow
$ pip uninstall Pillow
$ sudo apt-get install libjpeg-dev zlib1g-dev
$ pip install -I Pillow

Les deux premières lignes consistent à retirer tout oreiller ou paquet d'oreillers.

La troisième ligne consiste à installer les deux paquets requis.

La quatrième étape consiste à réinstaller Pillow.

Remarque, si vous utilisez virtualenv, pip install/uninstall doit être exécuté sous virtualenv

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X