2010-07-11 15 views
3

J'essaie d'installer PIL sur Snow Leopard, en utilisant Python 2.6.1, GCC 4.2.1, PIL 1.1.7, et j'ai essayé avec libjpeg6b et libjpeg7 - rien travaux. J'ai effacé toutes les traces de libjpeg/pil/zlib de fink, essayé diverses options du compilateur, etc. et utilisé http://jetfar.com/libjpeg-and-python-imaging-pil-on-snow-leopard/ et http: // www.brambraakman.com/blog/comments/installing_pil_in_snow_leopard_jpeg_resync_to_restart_error/ (pas un lien car StOv seulement me permet de poster un ...)Installation de PIL sur Snow Leopard - RIEN NE FONCTIONNE

4 bits d'informations potentiellement utiles:

otool ne montre pas libjpeg comme une dépendance

otool -L /Library/Python/2.6/site-packages/PIL/_imaging.so 
/Library/Python/2.6/site-packages/PIL/_imaging.so: 
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.0) 

Je reçois ces étranges messages du compilateur

i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done 
i686-apple-darwin10-gcc-4.2.1: Tcl: linker input file unused because linking not done 
i686-apple-darwin10-gcc-4.2.1: -framework: linker input file unused because linking not done 
i686-apple-darwin10-gcc-4.2.1: Tk: linker input file unused because linking not done 
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -IlibImaging -I/sw/include/freetype2 -I/sw/include -I/opt/local/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include -I/usr/local/include -I/usr/include -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c Tk/tkImaging.c -o build/temp.macosx-10.6-universal-2.6/Tk/tkImaging.o -framework Tcl -framework Tk 
In file included from /System/Library/Frameworks/Tk.framework/Headers/tk.h:78, 
       from Tk/tkImaging.c:51: 

selftest.py échoue à cause de _imagingmath (après avoir utilisé le deuxième lien ci-dessus, avant qu'il ne réussit pas à cause de _imaging)

Themistocles:Imaging-1.1.7 me$ python selftest.py 
Traceback (most recent call last): 
    File "selftest.py", line 11, in <module> 
    from PIL import ImageMath 
    File "./PIL/ImageMath.py", line 19, in <module> 
    import _imagingmath 
ImportError: No module named _imagingmath 

Tout sauf selftest.py échoue à cause de _imaging

>>> import _imaging 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ImportError: dlopen(/Library/Python/2.6/site-packages/PIL/_imaging.so, 2): Symbol not found: _jpeg_resync_to_restart 
    Referenced from: /Library/Python/2.6/site-packages/PIL/_imaging.so 
    Expected in: flat namespace 
in /Library/Python/2.6/site-packages/PIL/_imaging.so 

S'il vous plaît, aidez s'il vous plaît! Ça devient ridicule. Je serais même heureux de pouvoir compiler le support PIL sans jpeg à ce stade!

Répondre

1

Télécharger MacPort:

http://www.macports.org/install.php 

utiliser ensuite pour pil:

http://trac.macports.org/browser/trunk/dports/python/py-pil/Portfile 

J'ai aussi eu beaucoup de mal à cela, mais le port géré.

+0

Dois-je retirer les copies de libjpeg/PIL que j'ai installé? –

+0

Accroche-toi, est-ce que macports veut installer son propre Python, ou est-ce qu'il va bien jouer avec le système? –

+0

j'avais déjà installé un python plus récent quand je l'ai couru, donc je ne suis pas complètement sûr. il peut vouloir réinstaller un tas de choses que fink a déjà, je n'ai jamais utilisé les deux en même temps. – eruciform

0

J'ai toujours eu plusieurs écrans valant la peine d'erreurs gcc en essayant d'installer PIL. À un certain moment, j'ai obtenu quelque chose qui fonctionne (peut-être via MacPorts), alors maintenant ma solution est de le copier dans les paquets de site appropriés (par exemple dans un nouveau virtualenv).

Je viens de poster ici: http://blogmaker.com/PIL-1.1.6-for-MacOSX-10.5-Leopard.zip

Works pour moi; Je ne sais pas si ça va marcher pour quelqu'un d'autre! N'hésitez pas à me contacter avec des suggestions. Et, laissez-moi savoir s'il y a un meilleur endroit que je devrais poster. PIL est à la fois très cool et une dispute royale; ce serait bien d'avoir un endroit définitif pour le soutien. Il y a d'autres problèmes liés au PIL que je n'ai jamais résolus.

+0

Mise à jour pour les personnes qui trouvent ce message via une recherche: il existe également une fourche de PIL appelée Pillow qui est destinée à être plus facile à installer. Voir http://pypi.python.org/pypi/Pillow/ (Je ne l'ai pas testé, mais la prochaine fois je dois l'installer.) –

5

j'ai écrit récemment un article sur la façon d'obtenir PIL, django, Libjpeg bien travailler aux côtés de Snow Leopard

http://appelfreelance.com/2010/06/libjpeg-pil-snow-leopard-python2-6-_jpeg_resync_to_restart/

Je vais le copier ici pour vous aussi.

Si vous ne disposez pas de ce téléchargement d'abord.

http://www.ijg.org/files/jpegsrc.v7.tar.gz

aller dans votre environnement shell et décompressez en exécutant le

tar -zxvf jpegsrc.v7.tar.gz
cd jpeg-7

suivante puis exécutez

sudo make clean
sudo CC="gcc -arch i386”"./configure --enable-shared --enable-static
sudo make
sudo make install

Suivant obtenir PIL et Décompressez-

http://effbot.org/downloads/Imaging-1.1.6.tar.gz
tar -zxvf Imaging-1.1.6.tar.gz
cd Imaging-1.1.6

Si vous avez déjà avoir PIL je reco mmend course

sudo rm -Rf build

pour nettoyer me construit existant, cela a causé des charges d'erreurs et de cheveux gris!

dans votre fichier settings.py run trouver JPEG_ROOT

modifier de sorte qu'il se présente comme suit

JPEG_ROOT = libinclude(“/usr/local”)

prochaine étape sur la construction

sudo python setup.py build

si libjpeg est installé avec succès, vous devriez être capable d'exécuter python selftest.py sans aucune erreur liée à "jpeg"

sudo python setup.py install

si tout a fonctionné avec succès, vous devriez être en mesure d'entrer votre interpréteur Python en exécutant python dans votre ligne de commande et faire également les éléments suivants:

import PIL
import Image
import _imaging

sans aucune erreur.

Juste pour tripler J'ai un simple jpeg sur mon bureau.

image = Image.open(“/Users/MyName/Desktop/myimage.jpeg”)
image.save(“/Users/MyName/Desktop/test.jpeg”)

devrait fonctionner sans erreurs

+1

+11111 !!! en suivant les instructions ci-dessus (en prenant soin d'effacer d'abord libjpeg install préexistant) était la solution finale réussie pour moi après de nombreux échecs. Pour les autres, j'ai aussi le 'ImportError: aucun module nommé _imagingmath' lors de l'exécution de auto-test.py, mais cela ne semble pas important parce que je peux enfin 'importer _imaging' sans l'erreur _jpeg_resync_to_restart – Anentropic

+0

argh, non! Je reçois toujours 'IOError: le décodeur jpeg n'est pas disponible' ... je m'arrache les cheveux! – Anentropic

+1

ah oui! J'ai oublié de faire la commande 'sudo make install' sur libjpeg, j'ai recommencé depuis scratch et cela fonctionne vraiment maintenant. la santé mentale restaurée! – Anentropic