J'utilise un serveur CentOS 6.4 avec Python 2.7 (installé via le script PythonBrew)
J'ai installé gmp via 'yum install gmp' Et python-devel installé via 'yum install python-devel' (mais c'est pour python 2.6 series)
J'essaie d'installer pycrypto sur mon serveur, mais ça me donne
warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath
Est-il possible de faire pip 'reconnaître' mon installation gmp?
Merci: D
J'ai eu l'erreur ci-dessus lorsque j'ai essayé d'installer Fabric au niveau du système sur Centos 6.4 à l'aide de pip. (Fabric utilise pycrypto).
warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath
Voici comment je l'ai fait fonctionner:
yum install gmp-devel
Sudo pip uninstall ecdsa pycrypto paramiko fabric
# clear out the pip build dirs
rm -rf /tmp/pip-*
# make sure the directory containing libgmp.so.3 is on the python path
export LD_LIBRARY_PATH="/usr/lib64:$LD_LIBRARY_PATH"
pip install fabric
Voici une étape par étape que je viens de créer sur mon serveur CentOS (la séquence suppose que vous n'êtes pas root):
LIBGMP INSTALL
Tout d’abord, installez et installez libgmp quelque part dans votre répertoire personnel, comme suit:
./configure prefix=$HOME
make
make install prefix=$HOME
Cela créera un répertoire ~/lib, un répertoire ~/include et un répertoire ~/share s'il n'existe pas déjà.
Ensuite, ajoutez la ligne suivante à votre fichier .bashrc:
export LD_LIBRARY_PATH=$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH
Faites un ". ~/.Bashrc" pour appliquer vos modifications.
PYCRYPTO BUILD & INSTALL
Nous devons traiter manuellement le processus d’installation . Premièrement, nous pouvons télécharger pycrypto comme suit:
allez dans un répertoire où vous stockez vos sources:
cd ~/src
télécharger l'archive source pycrypto:
curl -o pycrypto.tar.gz " https://pypi.python.org/packages/source/p/pycrypto/pycrypto-2.6.tar.gz#md5=88dad0a270d1fe83a39e0467a66a22bb "
décompresser + décompresser l'archive:
gunzip pycrypto.tar.gz tar xvf pycrypto.tar
Ensuite, nous devons tromper la configuration "un peu":
cd pycrypto-26
./configure --includedir=$HOME/include
Editez le fichier cd src/config.h et modifiez les valeurs pour les définitions
#define HAVE_DECL_MPZ_POWM 0 au lieu de 1
#define HAVE_DECL_MPZ_POWM_SEC 1 au lieu de 0
#define HAVE_LIBGMP 1 au lieu de 0
Editez ensuite le fichier setup.py en recherchant le mot clé "_fastmath" Et assurez-vous que la déclaration Extension () ressemble à ce qui suit:
Extension("Crypto.PublicKey._fastmath",
include_dirs=['/home/<yourhome>/include','src/','/usr/include/'],
library_dirs=['/home/<yourhome>/lib'],
libraries=['gmp'],
sources=["src/_fastmath.c"]),
Enfin, construisez pycrypto avec:
python setup.py build
Vous devriez voir quelque part dans la trace la ligne suivante:
...
building 'Crypto.PublicKey._fastmath' extension
...
Vous pouvez ensuite faire une "installation de python setup.py" ou, si comme moi, vous préférez le pip:
cd ..
pip install ./pycrypto-2.6
Dans ce cas, vous ne devriez pas avoir d'erreur lors de l'exécution des lignes suivantes à partir de python:
>>> from Crypto.PublicKey import _fastmath
>>> import Crypto.Random
>>> _fastmath.HAVE_DECL_MPZ_POWM_SEC
1
Vous devez probablement également installer gmp-devel. Ceci donne à pycrypto les en-têtes dont il a besoin pour construire avec libgmp.
Sur Ubuntu, je n'avais que libgmp10 installé. Je rencontre le même avertissement lorsque j'essaie d'installer pycrypto. Après l’installation du paquet Ubuntu libgmp-dev, l’avertissement a disparu et le script de construction a indiqué qu’il utilisait l’extension _fastmath.
Si vous avez déjà installé pycrypto sans _fastmath, vous pouvez le réinstaller avec l’option -I, par exemple.
Sudo pip install -I pycrypto
Juste pour tous ceux qui ont connu cela au cours des dernières années, car j'en suis sûr, il y en aura/il y en aura. J'ai pu résoudre facilement ce problème sur mon installation Debian Jessie en exécutant la commande suivante.
$ Sudo apt-get install python-dev
Ensuite, essayez à nouveau votre installation. Dans mon cas, j'essayais d'installer ansible via pip avec la commande suivante. Aussi pour ceux de pouvoir trouver ce post avec le même scénario.
$ Sudo pip install ansible
La sortie devrait maintenant être la suivante.
Successfully installed pycrypto
Cleaning up...
J'espère que cela aide quelqu'un sur la route! - Justin
Il vous manque les bibliothèques C++ pour construire cela. Installer VS 2017 https://visualstudio.Microsoft.com/downloads/#build-tools-for-visual-studio-2017