Estoy intentando instalar Fabric, que requiere pycrypto. Durante la compilación de pycrypto siempre recibo un error de "tubería rota". No sé por dónde empezar a solucionar el problema.
Estoy ejecutando Mac OS X Snow Leopard 10.6.6, todas las actualizaciones instaladas; Python 2.6.1; CCG 4.2; XCode 4 (en caso de que haya actualizado GCC)
El error exacto es:
$ sudo python setup.py build
Password:
running build
running build_py
running build_ext
warning: GMP library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Hash.MD2' extension
gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -fwrapv -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch ppc -arch x86_64 -pipe -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/System/Library/Frameworks/Python.framework/Versions/2.6/include/python2.6 -c src/MD2.c -o build/temp.macosx-10.6-universal-2.6/src/MD2.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
src/MD2.c:134: fatal error: error writing to -: Broken pipe
compilation terminated.
lipo: can't open input file: /var/tmp//ccfADoXD.out (No such file or directory)
error: command 'gcc-4.2' failed with exit status 1
osx-snow-leopard
python
gcc
jlindenbaum
fuente
fuente
Respuestas:
Esta es una mejor solución que funciona para todas las extensiones de Python C compiladas en TODAS las versiones de Python en Mac OS X 10.6 usando XCode 4.
De esta manera, no tiene que manipular los
setup.py
archivos de todas las extensiones C que está intentando construir.fuente
~/.zshrc
.Como Tony señaló, el problema está relacionado con PPC. XCode 4 eliminó el ensamblador PPC. Las herramientas de configuración intentan instalarse para todas las arquitecturas de forma predeterminada, i386, ppc y x86_64.
Agregué este código a mi pycrypto-2.3 setup.py en la línea 122 y siguientes. Esto busca las opciones del compilador establecido para 'ppc' y lo elimina junto con la instrucción '-arch' anterior.
Ejecutando la instalación habitual de sudo python setup.py en el archivo modificado instalado pycrypto sin ningún problema.
Esta es una solución temporal terrible, pero debería funcionar por ahora hasta que setuptools pueda detectar mejor que 10.6 con XCode 4 ya no tiene PPC como arquitectura de destino aplicable. Se aceptan sugerencias para solucionar este problema en general.
fuente
Otra opción es copiar los ensambladores ppc de una versión anterior de xcode. Solo tiene que copiar las carpetas ppc y ppc64 desde la ubicación
/usr/libexec/gcc/darwin/
Reconozco que también es una solución terrible, ¡pero funcionó para mí!
fuente