似乎有很多人遇到了类似的问题,然而,经过多次搜索后,我找不到适用于我的特定架构的解决方案。我正在尝试安装Pycrypto(作为Fabric的子公司)无济于事。
我正在通过Homebrew运行Mac 10.8.2,python 2.7.3和XCode 4.6 - 使用pip或easy_install运行(我已经尝试过两者)。据我所知,问题可能与我的XCode版本有关,也可能是因为我的库。已经安装了XCode的命令行工具,我尝试将setenv ARCHFLAGS "-arch i386 -arch x86_64"
放在我的.cshrc文件中。我也试过ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /Developer
。至于图书馆,我尝试通过ln -s /usr/local/lib/libgmp.dylib /usr/lib/libgmp.dylib
链接它们 - 但这也没有用。
无论我尝试什么角度,错误总是一样的(见下文)。任何和所有的帮助将不胜感激。
/usr/local/share/python% pip install pycrypto
Downloading/unpacking pycrypto
Running setup.py egg_info for package pycrypto
Installing collected packages: pycrypto
Running setup.py install for pycrypto
building 'Crypto.PublicKey._fastmath' extension
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -pipe -mmacosx-version-min=10.8 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -Wno-unused-value -Wno-empty-body -Qunused-arguments -fwrapv -Wall -Wstrict-prototypes -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/_fastmath.c -o build/temp.macosx-10.8-intel-2.7/src/_fastmath.o
src/_fastmath.c:36:11: fatal error: 'gmp.h' file not found
# include <gmp.h>
^
1 error generated.
error: command '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang' failed with exit status 1
Complete output from command /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-Xb7nGV-record/install-record.txt --single-version-externally-managed:
running install
running build
running build_py
running build_ext
running build_configure
building 'Crypto.PublicKey._fastmath' extension
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -pipe -mmacosx-version-min=10.8 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk -Wno-unused-value -Wno-empty-body -Qunused-arguments -fwrapv -Wall -Wstrict-prototypes -std=c99 -O3 -fomit-frame-pointer -Isrc/ -I/usr/include/ -I/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/_fastmath.c -o build/temp.macosx-10.8-intel-2.7/src/_fastmath.o
src/_fastmath.c:36:11: fatal error: 'gmp.h' file not found
# include <gmp.h>
^
1 error generated.
error: command '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain /usr/bin/clang' failed with exit status 1
----------------------------------------
Command /usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -c "import setuptools;__file__='/var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-build/pycrypto/setup.py';exec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-Xb7nGV-record/install-record.txt --single-version-externally-managed failed with error code 1 in /var/folders/ym/v8l23q_x2xz_qhx3m84n6ym00005fr/T/pip-build/pycrypto
Storing complete log in /Users/me/.pip/pip.log
我尝试调用Fabric时的错误:
Traceback (most recent call last):
File "/usr/local/share/python/fab", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 2815, in <module>
working_set.require(__requires__)
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 690, in require
needed = self.resolve(parse_requirements(requirements))
File "/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/distribute-0.6.28-py2.7.egg/pkg_resources.py", line 588, in resolve
raise DistributionNotFound(req)
pkg_resources.DistributionNotFound: pycrypto>=2.1,!=2.4
答案 0 :(得分:73)
如果你使用Homebrew,这应该可以解决问题:
brew install gmp
env "CFLAGS=-I/usr/local/include -L/usr/local/lib" pip install pycrypto
使用env只会使它适用于该调用。如果您需要稍后在此会话中安装pycrypto,请导出变量。
export "CFLAGS=-I/usr/local/include -L/usr/local/lib"
pip install pycrypto
答案 1 :(得分:4)
我能够使用以下命令安装PyCrypto:
CFLAGS=-I/opt/local/include pip install pycrypto
我通过MacPorts安装了GMP,在python.org上使用Python 2.7.2在OSX 10.8.3上运行。在这种情况下,我正在安装到virtualenv。
使用PyCrypto时,我会收到以下警告,但它仍然有效:
/Users/me/.virtualenvs/blah/lib/python2.7/site-packages/Crypto/Util/number.py:57: PowmInsecureWarning: Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.
_warn("Not using mpz_powm_sec. You should rebuild using libgmp >= 5 to avoid timing attack vulnerability.", PowmInsecureWarning)
答案 2 :(得分:2)
简单地链接gmppylib没有用,因为pycrpto需要编译一些包含gmp.h的C文件。您应该安装GMP库,其中包含gmp.h.您似乎必须在Mac OS上安装GMP。以下两个链接应该对您有所帮助。
答案 3 :(得分:1)
我终于意识到我的问题的根源在于Fabric和Pycrypto版本之间的不兼容性。一旦我将我的Fabric版本降级到1.2.6,我就不再遇到上述错误了。然后,我使用tutorial作为跳跃点。但是,尽管有教程和旧版本的Fabric,我仍然遇到PyCrypto >= 2.1, !=2.4
错误。我最终从源代码安装了Pycrypto 2.2(因为显然pip
只会安装v.2.0.1,即使在pip -Iv install pycrypto==2.2
指定gmp.h
时也会安装v {2.6}导致{{1}}错误)。最后,一切正常。
答案 4 :(得分:0)
以下是对我有用的修复:
https://medium.com/software-bugs/84afab886a1e
您需要根据安装头包含路径(-I)创建一个符号链接但崩溃。例如:
建设&#39; Crypto.PublicKey._fastmath&#39;扩展
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -pipe -march = native -mmacosx-version-min = 10.7 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.7.sdk -isystem /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/ SDKs / MacOSX10.7.sdk / usr / include -I / Applications / Xcode.app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.7.sdk / usr / include -I / Applications / Xcode。 app / Contents / Developer / Platforms / MacOSX.platform / Developer / SDKs / MacOSX10.7.sdk / usr / X11 / include -Wno-unused-value -Wno-empty-body -Qunused-arguments -fwrapv -Wall -Wstrict- prototypes -std = c99 -O3 -fomit-frame-pointer -Isrc / * -I / usr / include / - * I / usr / local / Cellar / python / 2.7.3 / Frameworks / Python .framework / Versions / 2.7 / include / python2.7 -c src / _fastmath.c -o build / temp.macosx-10.7-x86_64-2.7 / src / _fastmath.o
src / _fastmath.c:36:11:致命错误:&#39; gmp.h&#39;找不到文件