2008-10-30 9 views
3

Je vais avoir du mal à obtenir des images prises en charge avec PIL - il me lance ceci:Python avec PIL et Libjpeg sur Leopard

IOError: decoder jpeg not available 

J'ai installé PIL de binaire, sans se rendre compte que je avais besoin libjpeg.

J'ai installé libjpeg et freetype2 via fink.

J'ai essayé de réinstaller PIL en suivant les instructions de http://timhatch.com/ (en bas de la page)

  • Télécharger PIL 1.1.6 paquet source et ont les outils de développement déjà installés
  • setup.py Patch avec ce patch donc il peut trouver le type de Freetype que vous avez déjà.

    patch -p0 < leopard_freetype2.diff

  • sudo apt-get install libjpeg si vous avez fink (sinon, construire manuellement et ajuster les chemins)

Mais je reçois toujours la même erreur.

Je suis sur Leopard PPC.

Répondre

0

Le chemin python regarde-t-il toujours l'ancienne version binaire de libjpeg?

Vous devrez le modifier pour pointer vers le nouvel emplacement si c'est le cas.

Lorsque vous avez compilé la nouvelle version de la PIL, a-t-elle dit qu'elle a trouvé libjpeg? Il compilera heureusement sans cela (iirc) et le premier signe d'ennui que vous verrez est au moment d'inclure.

Vous devrez ajuster le chemin à l'heure ./configure.

Le diff pourrait ne pas fonctionner pour vous. Vous devriez tester un peu plus, puis peut-être déposer un bug.

1

J'avais le même problème de 'décodeur jpeg' récemment lors du déploiement d'un projet django sur une boîte RHEL de produit qui nécessitait PIL. J'ai téléchargé PIL, et j'ai lancé 'python setup.py install' instantanément, et j'étais content que tout fonctionne, jusqu'à ce que je tombe sur le problème. Solution: libjpeg était déjà installé sur le système, j'ai donc installé libjpeg-devel. Je suis retourné dans la source de PIL et j'ai lancé 'python setup.py build', à la fin duquel, dans la sortie où il montre si PIL configure était capable de détecter le support de jpeg, gif, freetype, etc, il a dit que Le support jpeg était correct. Après l'installation de PIL, cela a bien fonctionné.

+0

Belle pointe - Je pense que je me rapproche. J'ai couru python setup.py build, et j'ai vu que j'avais Tkinter, JPEG, ZLIB et FREETYPE2 - tout va bien. Mais alors j'ai couru le python selftest.py, et il a retourné le même message IOError: décodeur non disponible. On dirait que j'ai ma nuit prévue maintenant. – thescreamingdrills

1

J'ai eu le même problème et le poste a fourni la solution de ce type pour moi:

rmer subdir PIL et le fichier PIL.pth dans l'imagerie-1.1.6 subdir

détails ici:

http://blog.tlensing.org/2008/12/04/kill-pil-%E2%80%93-the-python-imaging-library-headache/

Après cela, le processus selftest.py a fonctionné correctement.Je devrais également noter que j'emploie la version de macports de la bibliothèque de jpeg et j'avais déjà spécifié le JPEG_ROOT pour pointer vers les chemins d'include et de lib dans ma racine de macports

0

Si vous construisez avec libjpeg, mais que le test automatique échoue, vous probablement avoir une autre installation de PIL qui porte à confusion. Essayez de l'installer, et voyez si le test automatique fonctionne alors.

De plus, le lien direct vers les instructions mentionnées dans l'OP est here

0

Je suis resté fidèle à ce problème pendant quelques heures aujourd'hui. Et mon conseil est de ne pas faire des essais et des erreurs encore et encore, à moins que vous puissiez résoudre le problème dans les 15 premières minutes.

il y a quelques outils pour vous de diagnostiquer le problème:

1.Vérifier if jpeg lib architcture correspond à l'architecture de votre machine:

file /usr/local/lib/libjpeg.7.dylib 

2.Vérifier si la _imaging.so acutally liée à votre compilé jpeg lib

cd ImageSrc 

python setup.py build_ext -i 

otool -L PIL/_imaging.so 

3.Essayez à importer _imaging.so et voir quel est le problème

cd PIL 

python 

import _imaging 

4.Enfin, essayez de supprimer tous les précédents installés PIL * de python « -paquet site » répertoire pour vous assurer mise en place ne fonctionne

python setup.py install 

Pour moi, il est dû à j'utilise 32 bits python sur le léopard des neiges, et a résolu le problème en installer jpeg lib ainsi:

./configure CFLAGS="-arch i386" --enable-shared --enable-static 
Questions connexes