试图在Mac OSX mavericks上安装pycrypto

时间:2013-10-27 11:44:52

标签: python macos pycrypto

我目前正在尝试安装pycrypto,当我执行python setup.py build时,我收到以下错误:

cc -bundle -undefined dynamic_lookup -arch x86_64 -arch i386 -Wl,-F. build/temp.macosx-10.9-intel-2.7/src/_fastmath.o -lgmp -o build/lib.macosx-10.9-intel-2.7/Crypto/PublicKey/_fastmath.so
ld: illegal text-relocation to '___gmp_binvert_limb_table' in /usr/local/lib/libgmp.a(mp_minv_tab.o) from '___gmpn_divexact_1' in /usr/local/lib/libgmp.a(dive_1.o) for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: command 'cc' failed with exit status 1

我已经尝试重新安装命令行工具并删除旧的Xcode实例。

任何帮助都会非常感谢

14 个答案:

答案 0 :(得分:35)

这对我有用。 (如果您使用的是Xcode 5.1,则应该可以使用)

ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install pycrypto

答案 1 :(得分:12)

这对我有用:

  sudo port install gmp
  sudo ln -s  /opt/local/lib/libgmp.dylib  /usr/lib/libgmp.dylib  
  ARCHFLAGS=-Wno-error CFLAGS=-I/opt/local/include sudo -E pip install pycrypto

答案 2 :(得分:7)

我遇到了同样的问题,并且能够通过安装gmp来解决这个问题:

brew install gmp

然后我修改了我的构建目录并重新启动了pycrypto安装并且它成功了。

这也修复了pycrypto配置脚本中的警告消息:

warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath

请参阅related question

答案 3 :(得分:7)

优胜美地:

CC=clang sudo -E pip install pycrypto

答案 4 :(得分:3)

我最近注意到我需要brew来安装gmp 以便在升级OSX 10.9和Xcode 5之后再次使pip install pycrypto工作。但是然后gmp构建开始在非法文本重定位上失败。似乎a known issue 12946导致编译器无法编译与位置无关的代码:

  

cc -bundle -undefined dynamic_lookup -Wl,-F。   -Wno-error = unused-command-line-argument-hard-error-in-future -Wno-error = unused-command-line-argument-hard-error-in-future build / temp.macosx-10.9-intel- 2.7 / src / _fastmath.o -lgmp -o   建立/ lib.macosx-10.9-Intel的2.7 /加密/公钥/ _fastmath.so

     

ld:非法文本重定位到' ___ gmp_binvert_limb_table'在   /usr/local/lib/libgmp.a(mp_minv_tab.o)来自' ___ gmpn_divexact_1'在   架构x86_64的/usr/local/lib/libgmp.a(dive_1.o)

     

clang:错误:链接器命令失败,退出代码为1(使用-v查看   调用)

     

错误:命令' cc'退出状态1失败

radiofrequency提供的答案类似,我将gmp的共享库符号链接到系统的/ usr / lib目录中作为解决方法:

sudo ln -s /usr/local/Cellar/gmp/5.1.3/lib/libgmp.dylib /usr/lib/libgmp.dylib

gmp开发者应该添加--with-pic。

侧点:构建pycrypto的警告数量并不能提供舒适感。

答案 5 :(得分:2)

在El Capitan我刚刚做到了......

sudo easy_install livestreamer
sudo easy_install PyCrypto

et voila ...我现在可以将流保存到我的硬盘。

答案 6 :(得分:2)

这在Mojave上有效,并且比其他提出的选项更好的IMO: brew install gmp CFLAGS=-I/usr/local/include \ LDFLAGS=-L/usr/local/Cellar/gmp/6.1.2_2/lib \ pip install pycrypto

答案 7 :(得分:1)

对于那些也想安装pycrypto以及加密包的人来说,这是最终为我工作的命令:

env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography

答案 8 :(得分:1)

安装PyCrypto时使用MacPorts并执行以下命令。我在最新版本的Mac OS X上测试了它 - Yosemite:

Python版本2.7:

sudo port install py27-crypto

Python 3.4版:

sudo port install py34-crypto

答案 9 :(得分:1)

这是我在Mac / El Capitan上唯一有用的东西:

SELECT

答案 10 :(得分:0)

Install homebrew(单行安装在页面底部),然后尝试:

$ sudo pip install pycrypto

答案 11 :(得分:0)

如果我没弄错的话,pip和自制软件都是软件包管理器,但是自制软件是基于ruby构建的,而pip是基于python构建的。

$ sudo pip install pycrypto

你提到的这个命令需要安装pip,而不是自制软件。

This way to get pip

答案 12 :(得分:0)

我是蟒蛇的新来者;我也遇到过这个问题;它让我烦恼发布的所有解决方案都不适用于我,因此我暂时归档libgmp.alibgmp.la,然后pip安装了Crypto而没有错误。这是一种可接受的方法吗?我对没有了解为什么会有效...

答案 13 :(得分:0)

要安装pycrypto,请运行以下命令

$ CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/Cellar/gmp/6.1.2_2/lib pip install pycrypto