2013-06-26 6 views
16
Fehler

Ich bin ein CentOS 6.4 Server mit Python 2.7 (via PythonBrew Skript installiert ist) läuftFixing "Warnung: GMP oder MPIR Bibliothek nicht gefunden, nicht Crypto.PublickKey._fastmath Gebäude" auf Python 2.7 mit CentOS 6.4

Ich habe gmp installiert über 'yum install gmp' und python-devel installiert über 'yum install python-devel' (aber es ist für Python 2.6-Serie)

Ich versuche, pycrypto auf meinem Server zu installieren, aber es gibt ich

warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath 

Gibt es irgendwelche wa Soll Pip meine GMP-Installation "erkennen"?

Dank: D

Antwort

5

Sie wahrscheinlich gmp-devel installiert ist, zu benötigen. Dies gibt pycrypto die Header, die es mit libgmp erstellen muss.

Unter Ubuntu hatte ich nur libgmp10 installiert. Ich habe die gleiche Warnung bei der Installation von Pycrypto erhalten. Nach der Installation des Ubuntu-Pakets libgmp-dev ging die Warnung weg und das Build-Skript zeigte an, dass es die _fastmath-Erweiterung verwendete.

Wenn Sie pycrypto bereits ohne _fastmath installiert haben, können Sie es mit dem Flag -I, z.

sudo pip install -I pycrypto

7

Hier ist ein Schritt-für-Schritt, den ich auf meinem CentOS-Server auf nur gemacht habe (die Reihenfolge Sie sind nicht root annimmt):

libgmp INSTALL

Zuerst installieren und installieren Sie libgmp wie folgt in Ihrem Home-Verzeichnis:

./configure prefix=$HOME 
make 
make install prefix=$HOME 

Dies wird ein ~ erstellen/lib, ein ~/include und ein ~/share-Verzeichnis, wenn es nicht bereits existiert.

Dann fügen Sie die folgende Zeile in Ihre .bashrc:

export LD_LIBRARY_PATH=$HOME/lib:/usr/local/lib:$LD_LIBRARY_PATH 

Sie ein, um die Änderungen zu erzwingen "~/.bashrc.".

PyCrypto BUILD & INSTALLIEREN

Wir müssen manuell mit dem Installationsprozess befassen. Erstens können wir downloaden PyCrypto wie folgt:

Dann müssen wir die Konfiguration "ein bisschen" betrügen:

cd pycrypto-26 
./configure --includedir=$HOME/include 
  • Bearbeiten Sie die Datei cd src/config.h ein d die Werte für die Definitionen ändern:

    #define HAVE_DECL_MPZ_POWM 0 statt 1

    #define HAVE_DECL_MPZ_POWM_SEC 1 statt 0

    #define HAVE_LIBGMP 1 statt 0

  • Dann wird das bearbeiten setup.py Datei durch Suche nach dem Schlüsselwort "_fastmath" und stellen Sie sicher, dass die Extension() Erklärung wie folgt aussieht:

    Extension("Crypto.PublicKey._fastmath", 
          include_dirs=['/home/<yourhome>/include','src/','/usr/include/'], 
          library_dirs=['/home/<yourhome>/lib'], 
          libraries=['gmp'], 
          sources=["src/_fastmath.c"]), 
    

Schließlich baut PyCrypto mit:

python setup.py build 

Sie sollten irgendwo in der Spur die folgende Zeile sehen:

... 
building 'Crypto.PublicKey._fastmath' extension 
... 

Sie können dann einen "Python installieren setup.py" tun oder , wenn Sie wie ich bevorzugen Sie pip:

cd .. 
pip install ./pycrypto-2.6 

Dann sollten Sie bekommen keinen Fehler bei der Ausführung der folgenden Zeilen aus Python:

>>> from Crypto.PublicKey import _fastmath 
>>> import Crypto.Random 
>>> _fastmath.HAVE_DECL_MPZ_POWM_SEC 
1 
8

ich den obigen Fehler bekam, als Stoff auf Systemebene auf Centos 6.4 mit pip zu installieren versucht. (Stoff verwendet Pycrypto).

warning: GMP or MPIR library not found; Not building Crypto.PublickKey._fastmath 

Dies ist, wie ich es funktioniert habe:

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 
3

Gerade für jeden, der in den letzten Jahren über diese läuft, wie ich bin sicher, es gibt/werden einige sein. Ich konnte dieses Problem auf meiner Debian Jessie-Installation beheben, indem ich den folgenden Befehl ausführte.

$ sudo apt-get install python-dev 

Dann versuchen Sie erneut zu installieren. In meinem Fall habe ich versucht, Ansible über Pip mit dem folgenden Befehl zu installieren. Auch für diejenigen, die in der Lage sind, mit demselben Szenario auf diesen Beitrag zu stoßen.

$ sudo pip install ansible 

Die Ausgabe sollte nun folgende sein.

Successfully installed pycrypto 
Cleaning up... 

Ich hoffe, dass dies jemand auf der Straße hilft! - justin

Verwandte Themen