m2crypto
fjbardelli opened this issue · 4 comments
Estoy instalado m2crypto en Ubuntu 18.04, pero cuando corro pip install m2crypto>=0.18 no lo intsalara corri el instaladaor apt-get install -y swig pero tampoco. Me podrian decir los paso a seguir para su correcta instalacion
Tengo el mismo problema al crear un entorno virtual python en Ubuntu 19.04 para py2:
mkvirtualenv -r 'pyafipws/requirements.txt' --python=python2 pyafip
Lo tenía funcionando en Ubuntu 16.04 sin problema. Me da el siguiente error:
Failed to build m2crypto
Installing collected packages: httplib2, pysimplesoap, typing, m2crypto, fpdf, aenum, dbf, Pillow
Running setup.py install for m2crypto ... error
ERROR: Command errored out with exit status 1:
command: /home/cristian/.virtualenvs/pyafip/bin/python2 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-Jp_SY2/m2crypto/setup.py'"'"'; __file__='"'"'/tmp/pip-install-Jp_SY2/m2crypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-TDhXXu/install-record.txt --single-version-externally-managed --compile --install-headers /home/cristian/.virtualenvs/pyafip/include/site/python2.7/m2crypto
cwd: /tmp/pip-install-Jp_SY2/m2crypto/
Complete output (499 lines):
running install
running build
running build_py
creating build
creating build/lib.linux-x86_64-2.7
creating build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/util.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/six.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/__init__.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/ftpslib.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/RC4.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/BIO.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/m2urllib2.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/X509.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/AuthCookie.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/Engine.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/m2urllib.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/httpslib.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/m2crypto.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/m2.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/Err.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/threading.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/SMIME.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/m2xmlrpclib.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/DSA.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/BN.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/DH.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/EVP.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/EC.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/Rand.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/ASN1.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/RSA.py -> build/lib.linux-x86_64-2.7/M2Crypto
copying M2Crypto/callback.py -> build/lib.linux-x86_64-2.7/M2Crypto
creating build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/timeout.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/__init__.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/Checker.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/TwistedProtocolWrapper.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/Connection.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/ssl_dispatcher.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/Context.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/SSLServer.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/cb.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/Cipher.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
copying M2Crypto/SSL/Session.py -> build/lib.linux-x86_64-2.7/M2Crypto/SSL
running build_ext
building 'M2Crypto._m2crypto' extension
creating build/temp.linux-x86_64-2.7
creating build/temp.linux-x86_64-2.7/SWIG
x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-MW0004/python2.7-2.7.15=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -I/tmp/pip-install-Jp_SY2/m2crypto/SWIG -c SWIG/_m2crypto_wrap.c -o build/temp.linux-x86_64-2.7/SWIG/_m2crypto_wrap.o -Wno-deprecated-declarations -DTHREADING
SWIG/_m2crypto_wrap.c:4331:0: warning: "PyUnicode_FromString" redefined
#define PyUnicode_FromString(x) PyString_FromString(x)
In file included from /usr/include/python2.7/Python.h:88:0,
from SWIG/_m2crypto_wrap.c:127:
/usr/include/python2.7/unicodeobject.h:281:0: note: this is the location of the previous definition
# define PyUnicode_FromString PyUnicodeUCS4_FromString
SWIG/_m2crypto_wrap.c:4332:0: warning: "PyUnicode_Format" redefined
#define PyUnicode_Format(x, y) PyString_Format(x, y)
In file included from /usr/include/python2.7/Python.h:88:0,
from SWIG/_m2crypto_wrap.c:127:
/usr/include/python2.7/unicodeobject.h:275:0: note: this is the location of the previous definition
# define PyUnicode_Format PyUnicodeUCS4_Format
SWIG/_m2crypto_wrap.c: In function ‘_wrap__STACK_num_set’:
SWIG/_m2crypto_wrap.c:9511:19: error: dereferencing pointer to incomplete type ‘struct stack_st’
if (arg1) (arg1)->num = arg2;
^~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new__STACK’:
SWIG/_m2crypto_wrap.c:9738:48: error: invalid application of ‘sizeof’ to incomplete type ‘struct stack_st’
result = (struct stack_st *)calloc(1, sizeof(struct stack_st));
^~~~~~
SWIG/_m2crypto_wrap.c:9741:1: warning: label ‘fail’ defined but not used [-Wunused-label]
fail:
^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sk_new_null’:
SWIG/_m2crypto_wrap.c:9884:1: warning: label ‘fail’ defined but not used [-Wunused-label]
fail:
^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_sk_deep_copy’:
SWIG/_m2crypto_wrap.c:9969:40: warning: passing argument 2 of ‘OPENSSL_sk_deep_copy’ from incompatible pointer type [-Wincompatible-pointer-types]
result = (_STACK *)sk_deep_copy(arg1,arg2,arg3);
^~~~
In file included from /usr/include/openssl/safestack.h:13:0,
from /usr/include/openssl/crypto.h:23,
from /usr/include/openssl/bio.h:20,
from /usr/include/openssl/err.h:21,
from SWIG/_m2crypto_wrap.c:3561:
/usr/include/openssl/stack.h:34:16: note: expected ‘OPENSSL_sk_copyfunc {aka void * (*)(const void *)}’ but argument is of type ‘void * (*)(void *)’
OPENSSL_STACK *OPENSSL_sk_deep_copy(const OPENSSL_STACK *,
^~~~~~~~~~~~~~~~~~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_stack_st_OPENSSL_STRING_stack_set’:
SWIG/_m2crypto_wrap.c:10372:19: error: dereferencing pointer to incomplete type ‘struct stack_st_OPENSSL_STRING’
if (arg1) (arg1)->stack = *arg2;
^~
SWIG/_m2crypto_wrap.c:10372:29: error: dereferencing pointer to incomplete type ‘OPENSSL_STACK {aka struct stack_st}’
if (arg1) (arg1)->stack = *arg2;
^~~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new_stack_st_OPENSSL_STRING’:
SWIG/_m2crypto_wrap.c:10404:63: error: invalid application of ‘sizeof’ to incomplete type ‘struct stack_st_OPENSSL_STRING’
result = (struct stack_st_OPENSSL_STRING *)calloc(1, sizeof(struct stack_st_OPENSSL_STRING));
^~~~~~
SWIG/_m2crypto_wrap.c:10407:1: warning: label ‘fail’ defined but not used [-Wunused-label]
fail:
^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_stack_st_OPENSSL_BLOCK_stack_set’:
SWIG/_m2crypto_wrap.c:10452:19: error: dereferencing pointer to incomplete type ‘struct stack_st_OPENSSL_BLOCK’
if (arg1) (arg1)->stack = *arg2;
^~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_new_stack_st_OPENSSL_BLOCK’:
SWIG/_m2crypto_wrap.c:10484:62: error: invalid application of ‘sizeof’ to incomplete type ‘struct stack_st_OPENSSL_BLOCK’
result = (struct stack_st_OPENSSL_BLOCK *)calloc(1, sizeof(struct stack_st_OPENSSL_BLOCK));
^~~~~~
SWIG/_m2crypto_wrap.c:10487:1: warning: label ‘fail’ defined but not used [-Wunused-label]
fail:
^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_threading_init’:
SWIG/_m2crypto_wrap.c:10517:1: warning: label ‘fail’ defined but not used [-Wunused-label]
fail:
^~~~
SWIG/_m2crypto_wrap.c: In function ‘_wrap_threading_cleanup’:
SWIG/_m2crypto_wrap.c:10528:1: warning: label ‘fail’ defined but not used [-Wunused-label]
fail:
^~~~
...blablabla...
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
----------------------------------------
ERROR: Command errored out with exit status 1: /home/cristian/.virtualenvs/pyafip/bin/python2 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-Jp_SY2/m2crypto/setup.py'"'"'; __file__='"'"'/tmp/pip-install-Jp_SY2/m2crypto/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record /tmp/pip-record-TDhXXu/install-record.txt --single-version-externally-managed --compile --install-headers /home/cristian/.virtualenvs/pyafip/include/site/python2.7/m2crypto Check the logs for full command output.
Alguna idea?
Hola @cjadeveloper si no necesitas generar certificados y solo es para facturaciones básicas elimina m2crypto del requirement.txt, de esta forma pyafipws trabaja directamente con openSSL y funciona todo ok. Ya para la version de Python3 se estaria cambiando esta dependencia por cryptography.
apt-get install swig libssl-dev
should do the trick.
Hi! @jnweiger yes, and:
sudo apt-get install python3-dev
(if you work with py3k branch)
https://github.com/reingart/pyafipws#virtual-environment-testing
This must be installed before installing requirements.txt with pip.
Thanks for sharing!