2010-12-07 30 views
11

Estoy tratando de instalar en CentOS M2Crypto mediante la compilación de la fuente. que estoy haciendo una pitón setup.py construir pero me da el siguiente error,Instalación M2Crypto en CentOS

/usr/local/lib/python2.6/distutils/dist.py:266: UserWarning: Unknown distribution option: 'test_suite' 
    warnings.warn(msg) 
running build 
running build_py 
running build_ext 
building 'M2Crypto.__m2crypto' extension 
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c 
swig -python -I/usr/local/include/python2.6 -I/usr/include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i 
SWIG/_m2crypto.i:28: Error: Unable to find 'openssl/opensslv.h' 
SWIG/_evp.i:9: Error: Unable to find 'openssl/opensslconf.h' 
SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf.h' 
error: command 'swig' failed with exit status 1 

favor avise ...

Prasanna

+0

¿Por qué lo haces? m2crypto está empaquetado en RHEL 6. ¿Qué versión de CentOS tienes? – mcepl

Respuesta

4

Instalar openssl-devel.

+0

Tengo openssl-devel ya instalado .. gracias – Prasanna

+0

Digamos que lo hace: $> updatedb & $> locate openssl ¿Puede localizar los encabezados que faltan en su sistema? – Xavier

+0

nunca he usado updatedb. Lo intenté sin embargo, me da un error, updatedb: no puedo abrir un archivo temporal para '/var/lib/mlocate/mlocate.db 'he estado usando yum y rpm ... ¿cómo puedo encontrar los encabezados que faltan? – Prasanna

10

lo siguiente debe funcionar:

env SWIG_FEATURES="-cpperraswarn -includeall -D__`uname -m`__ -I/usr/include/openssl" python setup.py build 

Editar: y openssl-devel paquete es, por supuesto, también es necesario.

+0

Intenté esto, pero obteniendo un error similar ... – Prasanna

+0

/usr/local/lib/python2.6/distutils/dist.py:266: UserWarning: opción de distribución desconocida: 'test_suite' warnings.warn (msg) corriendo construir corriendo build_py corriendo build_ext edificio extensión 'M2Crypto .__ M2Crypto' swigging tRAGO/_m2crypto.i a swig/_m2crypto_wrap.c trago -python -I /usr/local/include/python2.6 -I/usr/include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i SWIG/_m2crypto.i: 28: Error: no se puede encontrar 'openssl/opensslv.h ' SWIG/_evp.i: 9: Error: no se puede encontrar' openssl/opensslconf.h ' S WIG/_ec.i: 7: Error: no se pudo encontrar 'openssl/opensslconf.h' – Prasanna

+0

error: el comando 'swig' falló con el estado de salida 1 – Prasanna

7

que acaba de tener este problema. En el archivo de M2Crypto INSTALAR:

Note about Fedora Core -based Distributions 
---------------------------------------------------- 

Fedora Core (and RedHat, CentOS etc.) have made changes to OpenSSL 
configuration compared to many other Linux distributions. If you can not 
build M2Crypto normally, try the fedora_setup.sh script included with 
M2Crypto sources. 

Mi solución era conseguir que las fuentes from PyPI o de la source. A continuación, en el directorio M2Crypto:

$ chmod +x fedora_setup.py 
$ ./fedora_setup.py install 

Si estás utilizando un virtualenv, cambie la ruta del intérprete de Python en ese archivo, o activar el entorno antes de la construcción.

La única dependencia que tenía de que no se hubiera satisfecho en mi sistema era openssl-devel.

+0

¡Trabajó para mi! ¡Gracias! –

+1

fedora_setup.py o fedora_setup.sh? La fuente que acabo de descargar (17-Sep-2012) tiene el archivo .sh, no tiene el archivo .py. –

+0

Ver si dice algo en INSTALAR. Solo sigue las instrucciones allí. –

0

instrucción de Seguimiento Brian, y asegúrese de que ha instalar openssl-devel. si experimenta un error como este:

./fedora_setup.sh build 
running build 
running build_py 
running build_ext 
building 'M2Crypto.__m2crypto' extension 
swigging SWIG/_m2crypto.i to SWIG/_m2crypto_wrap.c 
swig -python -I/usr/include/python2.6 -I/usr/include -includeall -o SWIG/_m2crypto_wrap.c SWIG/_m2crypto.i 
SWIG/_evp.i:12: Error: Unable to find 'openssl/opensslconf-i686.h' 
SWIG/_ec.i:7: Error: Unable to find 'openssl/opensslconf-i686.h' 
error: command 'swig' failed with exit status 1 

Está ejecutando el sistema operativo i386 en hardware de 64 bits. arch =´uname -m´ rendirá i686. La forma más fácil es evitar esto es crear un enlace simbólico.

sudo ln -s /usr/include/openssl/opensslconf-i386.h /usr/include/openssl/opensslconf-i686.h 

o si experimenta errores como:

./fedora_setup.sh build 
running build 
running build_py 
running build_ext 
SWIG/_m2crypto_wrap.c:27555: error: ‘Swig_var__evp_err_set’ undeclared (first use in this function) 
SWIG/_m2crypto_wrap.c:27564: error: ‘Swig_var__dh_err_get’ undeclared (first use in this function) 
SWIG/_m2crypto_wrap.c:27564: error: ‘Swig_var__dh_err_set’ undeclared (first use in this function) 
SWIG/_m2crypto_wrap.c:27576: error: ‘Swig_var__rsa_err_get’ undeclared (first use in this function) 
... 

hay cabeceras perdidas, simplemente ejecute el siguiente comando y vuelva a intentarlo:

sudo yum install python-devel