在 Mac OS X 上使用 pip 安装 pycrypto 时出现 Broken Pipe 错误 [英] Broken Pipe error when using pip to install pycrypto on Mac OS X

查看:20
本文介绍了在 Mac OS X 上使用 pip 安装 pycrypto 时出现 Broken Pipe 错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试通过 pip 在 OS X 上安装 pycrypto(2.3 版).当编译器尝试编译 MD2.c 时,我收到Broken pipe"错误.我在使用 easy_install 时遇到了非常相似的错误.

I am attempting to install pycrypto (version 2.3) on OS X via pip. I am getting a "Broken pipe" error when the compiler attempts to compile MD2.c. I get a very similar error when using easy_install.

这是我得到的错误:

bash-3.2$ 
bash-3.2$ sudo pip install pycrypto
Password:
Downloading/unpacking pycrypto
  Running setup.py egg_info for package pycrypto
Installing collected packages: pycrypto
  Running setup.py install for pycrypto
    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//cc47qHNI.out (No such file or directory)
    error: command 'gcc-4.2' failed with exit status 1
    Complete output from command /usr/bin/python -c "import setuptools;__file__='/Users/damusin/tmp/pycrypto/pycrypto-2.3/build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('
', '
'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-W6xQ61-record/install-record.txt:
    running install

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//cc47qHNI.out (No such file or directory)

error: command 'gcc-4.2' failed with exit status 1

----------------------------------------
Command /usr/bin/python -c "import setuptools;__file__='/Users/damusin/tmp/pycrypto/pycrypto-2.3/build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('
', '
'), __file__, 'exec'))" install --single-version-externally-managed --record /tmp/pip-W6xQ61-record/install-record.txt failed with error code 1
Storing complete log in /Users/admin/.pip/pip.log
bash-3.2$ 
bash-3.2$ 

我尝试使用带有命令sudo port install py26-crypto"的mac端口安装这个包,看起来安装顺利,但它告诉我在运行命令fab"(Fabric)时缺少pycrypto包.

I attempted to install this package using mac ports with the command "sudo port install py26-crypto", and looks to install smoothly but then it tells me that the pycrypto package is missing when running the command "fab" (Fabric).

我尝试使用 YH Wong 在回答中推荐的ARCHFLAGS"命令,但没有成功:https://superuser.com/questions/259278/python-2-6-1-pycrypto-2-3-pypi-package-broken-pipe-during-build

I attempted using the "ARCHFLAGS" command recommended in answer by YH Wong here but no luck: https://superuser.com/questions/259278/python-2-6-1-pycrypto-2-3-pypi-package-broken-pipe-during-build

我使用 Mac OS X 10.6.7 和 python 2.6.6 并安装了 XCode.

I am using Mac OS X 10.6.7 with python 2.6.6 and XCode is installed.

推荐答案

如果您已经安装了 Xcode 4,请在调用 pipeasy_install<之前尝试设置 ARCHFLAGS/代码>:

If you have installed Xcode 4, try setting ARCHFLAGS before calling pip or easy_install:

sudo bash
export ARCHFLAGS='-arch i386 -arch x86_64'
pip ...

问题在于 Xcode 4 已取消对 -arch ppc 的支持,但 Mac OS X 10.6 上的系统 Python 2.6 期望构建具有所有三种架构的通用 C 扩展模块.如果您在 sudo 命令之前定义环境变量,它可能不会通过 sudo 环境导出.

The problem is that Xcode 4 has removed support for -arch ppc but the system Python 2.6 on Mac OS X 10.6 expects to build universal C extension modules with all three architectures. And if you define the environment variable prior to the sudo command, it will likely not be exported through to the sudo environment.

这篇关于在 Mac OS X 上使用 pip 安装 pycrypto 时出现 Broken Pipe 错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆