[英]Trying to install pycrypto on Mac OSX mavericks
我目前正在尝试安装 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 实例。
任何帮助都会非常感谢
这对我有用。 (如果您使用的是 Xcode 5.1,应该可以使用)
ARCHFLAGS=-Wno-error=unused-command-line-argument-hard-error-in-future pip install pycrypto
这为我做到了:
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
我遇到了同样的问题,并且能够通过安装 gmp 来修复它:
brew install gmp
然后我修改了我的构建目录并重新开始安装 pycrypto 并且它成功了。
这也修复了 pycrypto 的配置脚本期间的警告消息:
warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath
请参阅相关问题。
优胜美地:
CC=clang sudo -E pip install pycrypto
这适用于 Mojave 并且比其他提供的选项更好 IMO: brew install gmp CFLAGS=-I/usr/local/include \\ LDFLAGS=-L/usr/local/Cellar/gmp/6.1.2_2/lib \\ pip install pycrypto
在 El Capitan 我刚刚做了这个......
sudo easy_install livestreamer
sudo easy_install PyCrypto
瞧……我现在可以将流保存到我的硬盘上。
我最近注意到,在升级 OSX 10.9 和 Xcode 5 后,我需要 brew 来安装 gmp才能让 pip install pycrypto 再次工作。但随后 gmp 构建开始因非法文本重定位而失败。 似乎一个已知问题 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 build/lib.macosx-10.9-intel-2.7/Crypto/PublicKey/_fastmath.so
ld:非法文本重定位到 /usr/local/lib/libgmp.a(mp_minv_tab.o) 中的 '___gmp_binvert_limb_table' 从 /usr/local/lib/libgmp.a(dive_1.o) 中的 '___gmpn_divexact_1' 用于架构 x86_64
clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
错误:命令“cc”失败,退出状态为 1
类似于射频提供的答案,我将 gmp 的共享库符号链接到系统的 /usr/lib 目录中作为解决方法:
sudo ln -s /usr/local/Cellar/gmp/5.1.3/lib/libgmp.dylib /usr/lib/libgmp.dylib
gmp 开发人员应该添加 --with-pic。
旁注:构建 pycrypto 的警告数量并不能提供安慰。
对于那些还希望安装 pycrypto 和加密包的人来说,这是最终对我有用的命令:
env ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
要安装 PyCrypto,请使用 MacPorts 和以下命令。 我在最新版本的 Mac OS X - Yosemite 上对其进行了测试:
Python 2.7 版:
sudo port install py27-crypto
Python 3.4 版:
sudo port install py34-crypto
这是在 Mac/El Capitan 上唯一对我有用的东西:
sudo easy_install -U livestreamer
要安装 pycrypto,请运行以下命令
$ CFLAGS=-I/usr/local/include LDFLAGS=-L/usr/local/Cellar/gmp/6.1.2_2/lib pip install pycrypto
安装自制软件(页面底部的单行安装),然后尝试:
$ sudo pip install pycrypto
如果我没记错的话,pip 和 homebrew 都是包管理器,但是 homebrew 是建立在 ruby 上的,而 pip 是建立在 python 上的。
$ sudo pip install pycrypto
您提到的这个命令需要安装 pip,而不是自制软件。
我是python的新手; 我也遇到过这个问题; 这让我很恼火。 发布的所有解决方案都不适合我,所以我暂时存档了libgmp.a
和libgmp.la
,然后pip
安装了Crypto
没有错误。 这是一种可以接受的方法吗? 我不明白为什么这有效......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.