instalar instal hat python python-2.7 centos centos6

instal - Solución "advertencia: no se encuentra la biblioteca GMP o MPIR; No se está generando el error Crypto.PublickKey._fastmath "en Python 2.7 con CentOS 6.4



pip install python centos (5)

Estoy ejecutando un servidor CentOS 6.4 con Python 2.7 (instalado a través del script PythonBrew)

Tengo gmp instalado a través de ''yum install gmp'' y python-devel instalado a través de ''yum install python-devel'' (pero es para python 2.6 series)

Estoy intentando instalar pycrypto en mi servidor, pero me está dando

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

¿Hay alguna manera de hacer que pip ''reconozca'' mi instalación gmp?

Gracias: D


Aquí está un paso a paso que acabo de hacer en mi servidor CentOS (la secuencia asume que no eres root):

INSTALACIÓN LIBGMP

En primer lugar, configure e instale libgmp en algún lugar de su directorio de inicio, de la siguiente manera:

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

Esto creará un directorio ~ / lib, un ~ / include y un directorio ~ / share si aún no existe.

Luego, agregue la siguiente línea a su .bashrc:

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

Haga un ". ~ / .Bashrc" para hacer cumplir sus cambios.

PYCRYPTO CONSTRUIR E INSTALAR

Tenemos que lidiar con el proceso de instalación manualmente. En primer lugar, podemos descargar pycrypto de la siguiente manera:

Entonces tenemos que engañar a la configuración "un poco":

cd pycrypto-26 ./configure --includedir=$HOME/include

  • Edite el archivo cd src / config.h y modifique los valores para las definiciones:

    #define HAVE_DECL_MPZ_POWM 0 en lugar de 1

    #define HAVE_DECL_MPZ_POWM_SEC 1 en lugar de 0

    #define HAVE_LIBGMP 1 en lugar de 0

  • Luego, edite el archivo setup.py buscando la palabra clave "_fastmath" y asegúrese de que la declaración de Extensión () se vea como se muestra a continuación:

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

Finalmente, construya pycrypto con:

python setup.py build

Deberías ver en algún lugar de la traza la siguiente línea:

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

Luego puedes hacer una "instalación de python setup.py" o, si así lo prefieres, pip:

cd .. pip install ./pycrypto-2.6

Entonces no debería obtener ningún error al ejecutar las siguientes líneas desde python:

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


Obtuve el error anterior al intentar instalar Fabric en el nivel del sistema en Centos 6.4 usando pip. (Tela utiliza pycrypto).

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

Así es como lo conseguí trabajando:

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


Probablemente necesites tener instalado gmp-devel. Esto le da a pycrypto los encabezados que necesita compilar usando libgmp.

En Ubuntu, solo tuve libgmp10 instalado. Presioné la misma advertencia cuando intento instalar pycrypto. Después de instalar el paquete de Ubuntu libgmp-dev, la advertencia desapareció y el script de compilación indicó que estaba usando la extensión _fastmath.

Si ya instaló pycrypto sin _fastmath, puede reinstalarlo con el indicador -I, por ejemplo

sudo pip install -I pycrypto


Solo para cualquiera que se encuentre con esto en los últimos años, ya que estoy seguro de que hay / habrá algunos. Pude solucionar fácilmente este problema en mi instalación Debian Jessie ejecutando el siguiente comando.

$ sudo apt-get install python-dev

A continuación, intente su instalación de nuevo. En mi caso, estaba tratando de instalar ansible a través de pip con el siguiente comando. También para aquellos que puedan venir a través de esta publicación con el mismo escenario.

$ sudo pip install ansible

La salida ahora debería ser la siguiente.

Successfully installed pycrypto Cleaning up...

Espero que esto ayude a alguien en el camino! - justin