繁体   English   中英

尝试在 Mac OSX 小牛上安装 pycrypto

[英]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.alibgmp.la ,然后pip安装了Crypto没有错误。 这是一种可以接受的方法吗? 明白为什么这有效......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM