Estou tentando instalar o Fabric, que requer pycrypto. Durante a construção do pycrypto, sempre recebo o erro "Broken Pipe". Não sei por onde começar a corrigir o problema.
Estou executando o Mac OS X Snow Leopard 10.6.6, com todas as atualizações instaladas; Python 2.6.1; GCC 4.2; XCode 4 (no caso de atualização do GCC)
O erro exato é:
$ 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
fonte
fonte
Respostas:
Esta é uma solução melhor que funciona para todas as extensões do Python C baseadas em TODAS as versões do Python no Mac OS X 10.6 usando o XCode 4.
Dessa forma, você não precisa mexer nos
setup.py
arquivos de todas as extensões C que você está tentando criar.fonte
~/.zshrc
.Como Tony apontou, o problema está relacionado ao PPC. O XCode 4 removeu o montador PPC. As ferramentas de instalação tentam instalar para todas as arquiteturas por padrão, i386, ppc e x86_64.
Eu adicionei esse código ao meu pycrypto-2.3 setup.py na linha 122 e seguintes. Ele pesquisa as opções definidas do compilador para 'ppc' e o remove e a instrução '-arch' anterior '.
A execução da instalação normal do sudo python setup.py no arquivo modificado instalou o pycrypto sem problemas.
Essa é uma solução terrível, mas deve funcionar por enquanto até que as ferramentas de instalação possam detectar melhor que o 10.6 com o XCode 4 não possui mais o PPC como uma arquitetura de destino aplicável. Sugestões para corrigir esse problema acima de tudo são aceitas.
fonte
Outra opção é copiar de volta os montadores ppc de uma versão anterior do xcode. Você só precisa copiar as pastas ppc e ppc64 do local
/usr/libexec/gcc/darwin/
Reconheço que também é uma solução terrível, mas funcionou para mim!
fonte