Я пытаюсь установить Fabric, для которой требуется pycrypto. Во время сборки для pycrypto я всегда получаю ошибку "Broken Pipe". Я не знаю, с чего начать, чтобы решить проблему.
Я использую Mac OS X Snow Leopard 10.6.6, все обновления установлены; Python 2.6.1; GCC 4.2; XCode 4 (в случае обновления GCC)
Точная ошибка:
$ 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
источник
источник
Ответы:
Это лучшее решение, которое работает для всех расширений Python C на всех версиях Python в Mac OS X 10.6 с использованием XCode 4.
Таким образом, вам не нужно копаться в
setup.py
файлах для всех расширений C, которые вы пытаетесь создать.источник
~/.zshrc
.Как отметил Тони, проблема связана с КПП. XCode 4 убрал ассемблер PPC. Программа установки пытается установить все архитектуры по умолчанию: i386, ppc и x86_64.
Я добавил этот код в мой pycrypto-2.3 setup.py в строке 122 и далее. Он ищет в параметрах компилятора «ppc» и удаляет его и предшествующую инструкцию «-arch».
Запуск обычной установки sudo python setup.py на измененный файл, установленный pycrypto, без проблем.
Это ужасный обходной путь, но он должен работать до тех пор, пока setuptools не сможет лучше обнаружить, что 10.6 с XCode 4 больше не имеет PPC в качестве применимой целевой архитектуры. Предложения по устранению этой проблемы принимаются.
источник
Другой вариант - скопировать обратно ppc-ассемблеры из предыдущей версии xcode. Вам нужно только скопировать папки ppc и ppc64 из папки
/usr/libexec/gcc/darwin/
Я понимаю, что это тоже ужасный обходной путь, но он сработал для меня!
источник