2011-03-20 16 views
18

Xcode4 abandonado el soporte de PPC, por lo que cuando intento construir PIL, que arroja odio:Instalación de PIL en OS X Snow Leopard w/Xcode4 (no hay soporte PPC)

Bens-MacBook-Air:Imaging-1.1.7 bkeating$ python setup.py build 
running buildrunning build_pyrunning build_ext 
--- using frameworks at /System/Library/Frameworks 
building '_imaging' extension 
/usr/bin/gcc-4.0 -fno-strict-aliasing -fno-common -dynamic -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -DHAVE_LIBJPEG -DHAVE_LIBZ -I/System/Library/Frameworks/Tcl.framework/Headers -I/System/Library/Frameworks/Tk.framework/Headers -I/usr/local/include/freetype2 -IlibImaging -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 decode.c -o build/temp.macosx-10.6-universal-2.6/decode.o 
/usr/libexec/gcc/powerpc-apple-darwin10/4.2.1/as: assembler (/usr/bin/../libexec/gcc/darwin/ppc/as or /usr/bin/../local/libexec/gcc/darwin/ppc/as) for architecture ppc not installed 
Installed assemblers are: 
/usr/bin/../libexec/gcc/darwin/x86_64/as for architecture x86_64 
/usr/bin/../libexec/gcc/darwin/i386/as for architecture i386 
decode.c:688: fatal error: error writing to -: Broken pipe 
compilation terminated. 
lipo: can't open input file: /var/folders/jW/jW0VkC8uEb4lAjcJou+OaU+++TI/-Tmp-//ccEmCpUp.out (No such file or directory) 
error: command '/usr/bin/gcc-4.0' failed with exit status 1 

me encontré con esa primera línea, de forma manual, y eliminó la opción -arch ppc y no informó con ningún error, pero al volver a ejecutar el proceso de compilación se ignora este intento manual. `gcc-4.0 tampoco existe, lo vinculé a gcc-4.2.

Podría seguir adelante e instalar Xcode3 y luego 4, pero quiero bloquear mi nueva instalación.

¿Hay alguna forma de decirle a PIL que no compile para PPC? Hice un grep en la distribución, pero no encontré una sola mención de PPC. ¿Algunas ideas?

+5

SOLUCIONADO: La solución no tiene nada que ver con PIL, sino con la configuración de ARCHFLAGS de gcc. p.ej. '' ARCHFLAGS = "- arch i386 -arch x86_64" sudo pip install PIL''. – Flowpoke

+5

Deberías haber dicho eso como una respuesta. Se le permite/anima a responder sus propias preguntas (siempre que realmente esté dando respuestas por supuesto). –

+0

Mientras no obtengo ningún error al utilizar esta línea de comando y dice éxito, obtengo "ImportError: Ningún módulo llamado PIL" con todos los scripts – Bastian

Respuesta

39

La solución no tiene nada que ver con el PIL, sino más bien de ajuste ARCHFLAGS de GCC:

ARCHFLAGS="-arch i386 -arch x86_64" sudo pip install PIL 
+11

En lugar de escribir "SOLUCIONADO", simplemente haga clic en la marca de verificación que resuelve el problema. – MatrixFrog

1

Sólo para ayudar a los demás ... tuve que usar ARCHFLAGS = "- x86_64 arco" antes de construir imágenes con mi nieve El sistema Leopard/XCode 4, es decir, que tenía "-arch i386" en su paréntesis, funcionaba para mí.

16

Parece que ARCHFLAGS no pasa a sudo. Que tenía que hacer

sudo -s 

continuación ARCHFLAGS="-arch i386 -arch x86_64" pip install PIL a hacer que funcione.

+0

Creo que puedes '' 'sudo ARCHFLAGS =" - arch i386 -arch x86_64 "pip install PIL'''? – gawbul

14

Una mejor manera de resolver este problema, en mi opinión, sería para editar su ~/.profile o/etc/bashrc y añadir la línea:

export ARCHFLAGS="-arch i386 -arch x86_64" 

salvación de Voluntad jugar un poco con las futuras instalaciones (¡Acabo de hacer esto para instalar muchos módulos Perl en CPAN)!

+0

Sí, ahora está en mi .bash_profile y funciona de maravilla. –

+1

+1, funcionó para mí. @Steve, actualmente no uso Xcode, pero ¿hay algún inconveniente en establecer esta variable de entorno (y olvidando que lo hice) y luego usar Xcode para, por ejemplo, el desarrollo de iOS? ¿O Xcode explícitamente anula esta variable? – brainjam

+0

¿No estoy seguro? Creo que este es un problema en la actualización de una versión anterior de OS X (que admite PPC) a una versión más reciente (por ejemplo, Snow Leopard o Lion) y quizás también con el nuevo XCode. ¡Tuve una nueva instalación de Snow Leopard y desde entonces me he actualizado a Lion y no he tenido este problema! – gawbul

Cuestiones relacionadas