Error al registrar WSAA: No es posible importar M2Crypto

1,737 views
Skip to first unread message

Fede De Gregorio

unread,
Oct 7, 2016, 3:56:15 PM10/7/16
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Buenas tardes Mariano, 

Debido al inconveniente que surgió a raíz de la inclusión del tag Events en la Facturación Electrónica y luego de intentar (sin exito) la actualización del wsfev1.py, tuvimos que reinstalar todo desde cero con las siguientes versiones:

* Instalables:
  Win32OpenSSL-1_0_2j.exe 
  VCForPython27.msi
  Python-2.7.12.msi 
  PyAfipWs-2.7.1843-32bit.wsaa_2.10g-full.exe

* Variables de entorno:

OPENSSL_CONF = C:\OpenSSL-Win32\bin\openssl.cfg
PYTHON_INCLUDE = C:\Python27\include
PYTHON_LIB = C:\Python27\libs\python27.lib
OPENSSL_INC_DIR = C:\OpenSSL-Win32\include
OPENSSL_LIB_DIR = C:\OpenSSL-Win32\lib
LIB = %VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIB%;C:\OpenSSL-Win32\lib
INCLUDE = C:\OpenSSL-Win32\include\;%VCINSTALLDIR%Include;%WindowsSdkDir%Include;%INCLUDE%
LIBPATH = C:\OpenSSL-Win32\lib\;%VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIBPATH%
VCINSTALLDIR = C:\Program Files\Common Files\Microsoft\Visual C++ for Python\9.0\VC\

* Componentes registrados:

python.exe -m pip install --upgrade pip
python.exe -m pip install --upgrade "setuptools>=6.0"
python.exe -m pip install --upgrade "httplib2>=0.7"
python.exe -m pip install --upgrade "pysimplesoap==1.08.8"
python.exe -m pip install --upgrade "fpdf>=1.7.2"
python.exe -m pip install --upgrade "dbf>=0.88.019"
python.exe -m pip install --upgrade "Pillow>=2.0.0#"
python.exe -m pip install --upgrade "m2crypto==0.22.3"

* El servidor es un Windows 2003 SP 2 de 32 bit.


Luego, al intentar registrar el WSAA nos da este error:

C:\Program Files\PyAfipWs>python.exe wsaa.py --register
wsaa.py:34: UserWarning: No es posible importar M2Crypto (OpenSSL)
  warnings.warn("No es posible importar M2Crypto (OpenSSL)")
wsaa.py:35: UserWarning: ImportError: DLL load failed: The specified module could not be found.

  warnings.warn(ex['msg']) # revisar instalación y DLLs de OpenSSL
Encodign in cp1252
Registered: WSAA


Si alguien puede darnos una mano o decirnos en qué nos estamos equivocando, les agradecería muchísimo.

Saludos,
Federico.

Mariano Reingart

unread,
Oct 9, 2016, 2:14:51 PM10/9/16
to pyaf...@googlegroups.com
Hola Federico, te contesto entre lineas:

2016-10-07 16:40 GMT-03:00 Fede De Gregorio <fndegr...@gmail.com>:
Buenas tardes Mariano, 

Debido al inconveniente que surgió a raíz de la inclusión del tag Events en la Facturación Electrónica y luego de intentar (sin exito) la actualización del wsfev1.py, tuvimos que reinstalar todo desde cero con las siguientes versiones:

* Instalables:
  Win32OpenSSL-1_0_2j.exe 
  VCForPython27.msi
  Python-2.7.12.msi 
  PyAfipWs-2.7.1843-32bit.wsaa_2.10g-full.exe


 ¿Este último wsaa porque lo instalaeste? (por mas que este instalado, si generas desde el código fuente, no lo tiene en cuenta)
Igualmente, ¿wsaa te funciona de este modo?

 
* Variables de entorno:

OPENSSL_CONF = C:\OpenSSL-Win32\bin\openssl.cfg
PYTHON_INCLUDE = C:\Python27\include
PYTHON_LIB = C:\Python27\libs\python27.lib
OPENSSL_INC_DIR = C:\OpenSSL-Win32\include
OPENSSL_LIB_DIR = C:\OpenSSL-Win32\lib
LIB = %VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIB%;C:\OpenSSL-Win32\lib
INCLUDE = C:\OpenSSL-Win32\include\;%VCINSTALLDIR%Include;%WindowsSdkDir%Include;%INCLUDE%
LIBPATH = C:\OpenSSL-Win32\lib\;%VCINSTALLDIR%Lib;%WindowsSdkDir%Lib;%LIBPATH%
VCINSTALLDIR = C:\Program Files\Common Files\Microsoft\Visual C++ for Python\9.0\VC\


Esto no haría falta salvo que quieras compilar alguna extensión de Python (y en general la configuración automática debería servir para la mayoría de los casos).
Para compilar M2Crypto posiblemente también necesitarias SWIG.
 
* Componentes registrados:

python.exe -m pip install --upgrade pip
python.exe -m pip install --upgrade "setuptools>=6.0"
python.exe -m pip install --upgrade "httplib2>=0.7"
python.exe -m pip install --upgrade "pysimplesoap==1.08.8"
python.exe -m pip install --upgrade "fpdf>=1.7.2"
python.exe -m pip install --upgrade "dbf>=0.88.019"
python.exe -m pip install --upgrade "Pillow>=2.0.0#"
python.exe -m pip install --upgrade "m2crypto==0.22.3"


Ok, el paquete de pywin32 y m2crypto también los podes instalar con el instalador para windows, ver dependencias:


El último paquete, M2Crypto, si lo instalás de esta manera te lo va a compilar (debes revisar que la instalación haya sido satisfactoria, en general no es trivial y tendrías que descargar el código de la última versión estable para Windows).
Sino, podes instalarlo con el wheel (precompilado) que vengo preparando:


Recomiendo probar este paquete, lo acabo de recompilar con las ultimas DLL de OpenSSL (ver alternativas sin dependencias externas), por lo que no debería tener prerequisitos a los runtimes de MS (no sería necesario instalar nada adicional).
 
* El servidor es un Windows 2003 SP 2 de 32 bit.


Luego, al intentar registrar el WSAA nos da este error:

C:\Program Files\PyAfipWs>python.exe wsaa.py --register
wsaa.py:34: UserWarning: No es posible importar M2Crypto (OpenSSL)
  warnings.warn("No es posible importar M2Crypto (OpenSSL)")
wsaa.py:35: UserWarning: ImportError: DLL load failed: The specified module could not be found.
  warnings.warn(ex['msg']) # revisar instalación y DLLs de OpenSSL

Tendrías que revisar el punto anterior, no debe estar compilando correctamente M2crypto o tenes algún conflicto de DLLs (o directamente no la encuentra, lo que es raro si instalaste Win32OpenSSL-1_0_2j.exe)
Te diría que revises la carpeta C:\Python27\Lib\site-packages\ y borres todos los archivos / carpetas que coincidan con M2Crypto* (puede que te haya quedado algo mal instalado y necesites hacer limpieza)

A veces podrías tener problemas de los runtimes de MSVC, si el paquete anterior no funciona podrías probar de instalar el "Redistribuibles de Microsoft Visual C 2013" y luego probar si ejecuta OpenSSL por linea de comando:


Si OpenSSL te ejecuta por linea de comando, el componente lo puede utilizar aún si hay algún problema de M2Crypto (siempre que esté instalado en la carpeta predeterminada c:\OpenSSL-Win32\bin\ )
En ese caso, aún si te sigue dando la advertencia (el warning de M2Crypto), posiblemente te funcione la generación de token y sign con WSAA.
 
Encodign in cp1252
Registered: WSAA


Si alguien puede darnos una mano o decirnos en qué nos estamos equivocando, les agradecería muchísimo.


Te recomiendo que pruebes estas cuestiones que comento (especialmente el paquete precompilado M2Crypto-0.22.3-cp27-cp27m-win32.whl), y comentarnos si se te soluciona el problema. 
 
Sds

Mariano Reingart
http://www.sistemasagiles.com.ar

Fede De Gregorio

unread,
Oct 11, 2016, 2:04:15 PM10/11/16
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Mariano, volvimos todo a foja cero y basándonos en el orden de instalación que propone el video tutorial, funcionó. Lo que nos parece raro es que en ningun momento instala el OpenSSL y era requisito en el link que menciona las dependencias.

Tengo entendido que el OpenSSL sirve para generar los request del certificado. Es necesario tenerlo instalado en el servidor donde funciona la facturación?

Desde ya, muchas gracias por tu tiempo.

Saludos,
Federico.

grupo...@gmail.com

unread,
Oct 11, 2016, 5:35:28 PM10/11/16
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Federico:

No necesitás instalar OPENSSL en el PC en dónde se factura. Para eso está el M2Crypto que son, por así decirlo, funciones openssl para Python.

Leandro Morrone

unread,
Jan 9, 2019, 3:44:15 PM1/9/19
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Quisiera dejar mi solución para la posteridad:

Estuve teniendo el mismo error:
wsaa.py:33: UserWarning: No es posible importar M2Crypto (OpenSSL)
wsaa.py:34: UserWarning: ImportError: No module named M2Crypto

Se me dio por entrar a la carpeta C:\Python27\Lib\site-packages para verificar si la librería estaba instalada y sí estaba, pero con minúsculas: "m2crypto"
Simplemente renombré la carpeta a "M2Crypto" y luego pude registrar wsaa.py sin errores.

Parece una pavada, pero a mí me funcionó.
Compartan si también lo pudieron arreglar de esta manera.
Saludos!

El viernes, 7 de octubre de 2016, 16:56:15 (UTC-3), Fede De Gregorio escribió:
Reply all
Reply to author
Forward
0 new messages