我目前正在尝试安装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实例。
任何帮助都会非常感谢
答案 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,而不是自制软件。
答案 12 :(得分:0)
我是蟒蛇的新来者;我也遇到过这个问题;它让我烦恼发布的所有解决方案都不适用于我,因此我暂时归档libgmp.a
和libgmp.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