2013-03-13 7 views
21

Es scheint, als ob es eine Reihe von Menschen, die ein ähnliches Problem gehabt haben, jedoch nach viel Suche habe ich nicht in der Lage, eine Lösung zu finden, die mit meiner besonderen arbeitet die Architektur. Ich versuche, Pycrypto (als eine Tochtergesellschaft von Fabric) ohne Erfolg zu installieren.Pycrypto installieren fatalen Fehler: gmp.h Datei nicht gefunden

Ich habe Mac 10.8.2, Python 2.7.3 über Homebrew und XCode 4.6 - Installation mit Pip oder easy_install (ich habe beide versucht). Von dem, was ich sagen kann, könnte das Problem entweder in Bezug auf meine Version von XCode oder wegen meiner Bibliotheken sein. Die Befehlszeilentools für XCode wurden installiert und ich habe versucht, setenv ARCHFLAGS "-arch i386 -arch x86_64" in meine .cshrc-Datei zu platzieren. Ich habe auch versucht ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /Developer. Was die Bibliotheken betrifft, habe ich versucht, sie über ln -s /usr/local/lib/libgmp.dylib /usr/lib/libgmp.dylib zu verknüpfen - aber das hat auch nicht funktioniert.

Der Fehler ist immer derselbe (siehe unten) egal welchen Winkel ich versuche. Jede und jede Hilfe würde geschätzt werden.

/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 

Der Fehler, wenn ich versuche Stoff zu nennen:

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 

Antwort

1

ich schließlich erkannte, dass die Wurzel meines Problems zwischen den Versionen von Stoff und PyCrypto in einer Inkompatibilität war. Nachdem ich meine Version von Fabric auf 1.2.6 heruntergestuft habe, sind die obigen Fehler nicht mehr aufgetreten. Dann habe ich die tutorial als einen Sprungpunkt verwendet. Jedoch, trotz des Tutorials und der älteren Version von Fabric, habe ich immer noch den PyCrypto >= 2.1, !=2.4 Fehler. Ich habe schließlich Pycrypto 2.2 von der Quelle installiert (da anscheinend pip wird v. 2.0.1 nur installieren, selbst wenn pip -Iv install pycrypto==2.2 pro this und v. 2.6 in der gmp.h Fehler ergab). Endlich hat alles geklappt.

2

einfach Verknüpfung gmppylib nicht hilfreich ist, weil pycrpto einige C-Dateien kompilieren, muss die gmp.h. enthalten wird Sie sollten die GMP-Bibliothek installiert haben, die gmp.h enthalten wird. Es scheint, dass Sie GMP auf Ihrem Mac OS installieren müssen. Die folgenden zwei Links sollten für Sie hilfreich sein.

+0

Leider funktionierte keiner von diesen. Aber danke. – cosmosis

0

Dies ist die Update, das für mich gearbeitet:

https://medium.com/software-bugs/84afab886a1e

Sie benötigen einen symbolischen Link erstellen auf der Installations-Header enthalten Pfad (-I) in aber crash basiert. Beispiel:

Gebäude 'Crypto.PublicKey._fastmath' Erweiterung

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/clang -fno-strict-aliasing -fno- common -dynamic -pipe -march = nativ -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/Anwendungen/Xcode.app/Inhalte/Entwickler/Plattformen/MacOSX.platform/Entwickler/SDKs/MacOSX10.7.sdk/usr/include -I/Programme/Xcode.app/Inhalte/Entwickler/Plattformen/MacOSX.platform/Entwickler/SDKs/MacOSX10.7.sdk/usr/X11/include -Wno-unbenutzter Wert - Wno-leer-body -Qunused-Argumente -fwrap v -Wall -Wstrict-Prototypen -std = c99 -O3 -Fomit-Frame-Zeiger -Isrc/* -I/usr/include/- * Ich/usr/local/Keller/Python/2.7.3/Frameworks/Python.framework/Versionen/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: fatale Fehler: 'gmp.h' Datei nicht gefunden

4

konnte ich PyCrypto kennen zu installieren mit dem folgenden Befehl:

CFLAGS=-I/opt/local/include pip install pycrypto 

ich habe GMP über MacPorts installiert, auf OSX 10.8.3 mit Python 2.7.2 von python.org läuft. In diesem Fall installiere ich in ein virtualenv.

ich tun, um die folgende Warnung, wenn PyCrypto verwendet wird, aber es funktioniert immer noch:

/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) 
41

Wenn Sie Homebrew verwenden, sollte dies den Trick:

brew install gmp 
env "CFLAGS=-I/usr/local/include -L/usr/local/lib" pip install pycrypto 

env Verwendung garantiert, dass Es funktioniert nur dieses Mal. Wenn Sie pycrypto zu einem späteren Zeitpunkt in einer anderen Sitzung installieren müssen, exportieren Sie stattdessen die Variable.

export "CFLAGS=-I/usr/local/include -L/usr/local/lib" 
pip install pycrypto 
+1

Arbeitete perfekt für mich, danke! –

+0

danke. 'env" CFLAGS = -I/usr/include/gmp -L/usr/lib/gmp "pip install pycrypto' funktionierte für mich unter Solaris 11.3. –

+1

Es funktioniert. Danke vielmals. Du rettest mein Leben. – harukaeru

Verwandte Themen