web-dev-qa-db-fra.com

Erreur fatale d'installation de Pycrypto: fichier gmp.h introuvable

Il semble qu'il y ait un certain nombre de personnes qui ont eu un problème similaire, cependant, après de nombreuses recherches, je n'ai pas été en mesure de trouver une solution qui fonctionne avec mon architecture particulière. J'essaie d'installer Pycrypto (en tant que filiale de Fabric) en vain.

J'utilise Mac 10.8.2, python 2.7.3 via Homebrew et XCode 4.6 - installation avec pip ou easy_install (j'ai essayé les deux). D'après ce que je peux dire, le Le problème peut être lié à ma version de XCode ou à cause de mes bibliothèques. Les outils de ligne de commande pour XCode ont été installés et j'ai essayé de placer setenv ARCHFLAGS "-Arch i386 -Arch x86_64" dans mon fichier .cshrc. J'ai aussi essayé ln -s /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer /Developer. Quant aux bibliothèques, j'ai essayé de les lier via ln -s /usr/local/lib/libgmp.dylib /usr/lib/libgmp.dylib - mais cela n'a pas fonctionné non plus.

L'erreur est toujours la même (voir ci-dessous) quel que soit l'angle que j'essaie. Toute aide serait appréciée.

/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

L'erreur lorsque j'essaie d'appeler 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
36
cosmosis

J'ai finalement réalisé que la racine de mon problème était dans une incompatibilité entre les versions de Fabric et Pycrypto. Une fois que j'ai rétrogradé ma version de Fabric à 1.2.6, je n'ai plus les erreurs ci-dessus. Ensuite, j'ai utilisé le tutoriel comme point de départ. Cependant, malgré le didacticiel et l'ancienne version de Fabric, j'ai toujours le PyCrypto >= 2.1, !=2.4 Erreur. J'ai finalement installé Pycrypto 2.2 à partir des sources (car apparemment pip n'installera que la version 2.0.1 même lors de la désignation de pip -Iv install pycrypto==2.2 per this et v. 2.6 a entraîné le gmp.h Erreur). Enfin, tout a fonctionné.

1
cosmosis

Si vous utilisez Homebrew, cela devrait faire l'affaire:

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

Utiliser env ne fera que le faire fonctionner pour cette invocation. Si vous devez installer pycrypto ultérieurement dans cette session, exportez la variable à la place.

export "CFLAGS=-I/usr/local/include -L/usr/local/lib" 
pip install pycrypto
96
AKX

J'ai pu installer PyCrypto à l'aide de la commande suivante:

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

J'ai installé GMP via MacPorts, fonctionnant sur OSX 10.8.3 avec Python 2.7.2 de python.org. Dans ce cas, j'installe dans un virtualenv.

Je reçois l'avertissement suivant lorsque PyCrypto est utilisé, mais cela fonctionne toujours:

/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)
5
flyingfred0

La simple liaison de gmppylib n'est pas utile car pycrpto doit compiler des fichiers C qui incluront gmp.h. Vous devez avoir installé la bibliothèque GMP qui contiendra gmp.h. Il semble que vous devez installer GMP sur votre Mac OS. Les deux liens suivants devraient vous être utiles.

2
Kun Ling

Voici le correctif qui a fonctionné pour moi:

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

Vous devez créer un lien symbolique basé sur l'en-tête d'installation incluez le chemin (-I) dans mais plantez. Exemple:

construction de l'extension 'Crypto.PublicKey._fastmath'

/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/SD .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 -used-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: erreur fatale: fichier 'gmp.h' introuvable

0
josephmisiti