Instalador retrocompatible desde xp hasta windows 10

809 views
Skip to first unread message

Marcelo Javier Perales

unread,
Mar 30, 2025, 12:37:13 PM3/30/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT

Buenos días grupo. Les comparto el trabajo duro de varios días. Se trata de un instalador que les permitirá instalar el proyecto en cualquier versión de windows desde xp hasta windows 10, no probé en windows 11 pero puede que también funcione:

Fue desarrollado sobre un windows xp SP3.

PROCEDIMIENTO:

1-Instalar python (la versión que usé es la 2.7.12 aunque podría funcionar la ultima que fue la 2.7.18 pero habría que ver), MARCANDO QUE SE CONFIGUREN LAS VARIABLES DE ENTORNO durante la instalación y QUE SE INSTALE EN c:\pyafipws y no en archivo de programas.
 Si no se crearon las variables de entorno se pueden crear manualmente en path:
C:\Python27,C:\Python27\scripts y de paso se pueden agregar las demás que se pueden requerir que son estas:
C:\NSIS;C:\OpenSSL-Win32;C:\OpenSSL-Win32\bin;C:\OpenSSL-Win32\include\openssl;C:\Python27\;C:\Python27\Scripts

2-Instalar py2exe y Nsis

3-Descargar el proyecto pyafipws-develop (la rama develop es la de python 2 y la main es la de la versión 3)

4-Normalmente el proyecto se comienz instalando ejecutando en primer lugar el setup.bat, que lo que hace es:

A- verificar si está instalada una versión de python superior o igual a 2.7.9.
e informar que se creen las variables de entorno C:\Python27 y la carpeta
C:\Python27\scripts

Seguidamente pasa a instalar las dependencias seguido a este titulo:
echo *** Instalar las dependencias binarias (precompiladas):

Pero acá empezarían los problemas ya que con las dos lineas que siguen hay problemas:

pip install http://www.sistemasagiles.com.ar/soft/pyafipws/M2Crypto-0.22.3-cp27-none-win32.whl

pip install http://www.sistemasagiles.com.ar/soft/pyafipws/pywin32-219-cp27-none-win32.whl

No solo los dos links estan muertos sino que además, esas dos dependencias no funcionarán en el xp traeran problemas NO INSTALARLAS. En su lugar hay que instalar:

https://www.sistemasagiles.com.ar/soft/pyafipws/M2Crypto-0.22.3-cp27-cp27m-win32.whl

Que es una dependencia que modificó Mariano Reingart por el 2016 y es la que funciona.

Y en cuanto a Pywin32, la versión que me funcionó es la 218 (no la 219 de los requirements).
Como no se encuentra por ningún lado yo usé una de una instalación de hace años:
La subí al drive y se las comparto:
https://drive.google.com/file/d/1-AmTUnEpEJ5AxzYPllDDOmFezipPlqqy/view?usp=sharing

El setup.bat, despues de lo anterior continua así:

echo *** Instalar el resto de las dependencias:

pip install -r requirements.txt

Acá se intentan instalar con ese comando algunas dependencias incluidas en el archivo requirements.txt.
Pero algunas no se instalaran porque no existe el repositorio de la versión, o bien son versiones que no son las que van a andar bien en un xp o superior.

httplib2==0.19.0
pysimplesoap==1.08.14
/////////////////m2crypto>=0.18 (si siguieron estos pasos ya lo instalaron)
fpdf>=1.7.2
dbf>=0.88.019
Pillow>=2.0.0
#pywin32==219 (si siguieron estos pasos ya lo instalaron y no la 219 sino la 218)
tabulate==0.8.5
certifi>=2020.4.5.1
qrcode==6.1

Así que recomendaría que editen los requirements comentando lo que no va y agregando lo que sí.


Sigue setup.bat así:

echo *** Registrando componentes...

python wsaa.py --register
python wsfev1.py --register
python wsfexv1.py --register
python wsbfev1.py --register
python wsmtx.py --register

python wscdc.py --register

python pyfepdf.py --register
python pyi25.py --register
python pyemail.py --register

python padron.py --register

python cot.py --register

python wsctgv2.py --register
python wslpg.py --register

python trazamed.py --register
python trazarenpre.py --register
python trazafito.py --register
python trazavet.py --register

echo *** Listo!

Si seguiste estos pasos no vas a tener el error al registrar wsaa.py, porque de no hacerlo te dará el error de que no se pudo importar M2crypto.

echo Para generar el instalador debe descargar e instalar:
echo Nullsoft Scriptable Install System (NSIS): http://nsis.sourceforge.net/

pause

setup.bat TERMINADO.

----
Ya debería funcionar bien el proyecto, y tendría que poder trabajarse desde otros lenguajes de programación o programas preparados para trabajar con el proyecto Pyafipws.

Para desarrollar un instalador a partir de este sistema continuamos así:

python setup.py py2exe

eso compila los archivos

Y si instalaste Nsis y lo agregaste a la variable de entorno path como mostré arriba, cuando finalice py2exe la compilación, iniciará automaticamente Nsis la generación del paquete (si no inicia solo nsis podes buscar el scrip de nsis llamado base.nsi y desde el programa nsis cargarlo.

Si nsis se te frena porque busca "vcredist_x86.exe" tenes dos opciones:
O agregas el instalador "vcredist_x86.exe" (visual c++)
O abris con el bloc de notas a base.nsi y le agregas punto y coma a las líneas que te muestro abajo (buscá esa sección dentro del sript)

    vcredist_install:
;    File "vcredist_x86.exe"
;    DetailPrint "Installing Microsoft Visual C++ 2008 Redistributable"
;    ExecWait '"$INSTDIR\vcredist_x86.exe" /q' $0
;    Delete $INSTDIR\vcredist_x86.exe
    vcredist_ok:

Nsis terminará su ejecución mostrando su ventana con un fondo verde de ejecución terminada correctamente.

Listo, en la carpeta de pyafipws vas a encontrar el instalador terminado.

Podes utilizarlo para instalar el proyecto en cualquier versión de windows. Bueno, no probé en windows 11 todavía, pero funciona en xp, windows server 2008 64 bits, y windows 10 64 bits.

No olviden colocar en la carpeta pyafipws/conf el certificado afip_ca_info o van a recibir el mensaje de que no se estan conectando a una AC de confianza (autoridad de confianza).
Y por supuesto van a tener que gestionar y agregar sus propios certificados de la cuit con la que se facture. Los de reingart incluidos estan vencidos.

Exitos!

Marcelo Javier Perales

unread,
Apr 2, 2025, 1:46:35 PM4/2/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Confirmo que el instalador funciona perfectamente en windows 11 también.
Desde XP a Windows 11 sistemas operativos de 32 o 64 bits. O sea... se instala en cualquier Windows que se pueda encontrar hoy día.

Gerardo Allende

unread,
Apr 8, 2025, 12:43:07 PM4/8/25
to pyaf...@googlegroups.com
Hola, a mí me daba error con el httplib 0.19.0, tuve que instalar el httplib2==0.9.2 para que funcione. Ver https://github.com/reingart/pyafipws/issues/64


Gracias por tu colaboración en el grupo!

--
Proyecto PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT:
http://www.pyafipws.com.ar/ - http://www.github.com/reingart/pyafipws - http://www.sistemasagiles.com.ar/
---
Has recibido este mensaje porque estás suscrito al grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a pyafipws+u...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/pyafipws/271ecd16-c5eb-4257-a950-a5d9af98c39cn%40googlegroups.com.

Marcelo Javier Perales

unread,
Apr 8, 2025, 5:09:53 PM4/8/25
to pyaf...@googlegroups.com
Sí, efectivamente me fijé cual terminé instalando y fue efectivamente la versión 0.9.2 de httplib2. Suerte que lo mencionaste, porque recuerdo que me dio también problemas ese paquete.
¿Qué versión de Python usaste?. ¿2.7 y qué más?

Has recibido este mensaje porque estás suscrito a un tema del grupo "PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/pyafipws/Gc-QCxeQZ4s/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a pyafipws+u...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/pyafipws/CAOHa-0ABfM9cSVdvW-twN%2BGyZzhTkTqVeBgyAsKxr7O3bsKqDQ%40mail.gmail.com.


--
Marcelo Javier Perales
Juramento 4355 dto. 1
Movil /WhatsApp: 15-5902-2424
elen...@gmail.com (en el movil)

Gerardo Allende

unread,
Apr 8, 2025, 5:53:44 PM4/8/25
to pyaf...@googlegroups.com

Javier Macedo

unread,
Apr 11, 2025, 2:04:13 AM4/11/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola gente, buena tarde!!!

Ya tengo un compilado viejo funcionando, y como hay que agregar estos nuevos campos, hice un nuevo compilado siguiendo estas instarucciones.

Aparentemente funciono todo bien.

Pero, ahora no me hace la coneccion con wsaa, me da este error (es foxpro)

OLE IDispatch exception code 0 from Python COM Server Internal Error: Unexpected Python Error: Traceback (most recent call last):
  File "win32com\server\policy.pyc", line 277, in _Invoke_
  File "win32com\server\policy.pyc", line 282, in _invoke_
  Fileta = WSAA.CallWSAA(cms, "https://wsaa.afip.gov.ar/ws/services/LoginCms")

o sea el problema es en el CallWSAA

si a alguien tiene alguna idea de cual puede ser el problema es bienvenida.

Gracias desde ya.

Fabricio Corbo

unread,
Apr 11, 2025, 2:44:51 PM4/11/25
to pyaf...@googlegroups.com

Hola.
Borraste la carpeta cache?


Javier Macedo

unread,
Apr 12, 2025, 11:54:36 AM4/12/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Le hice de todo, pero anoche termino funcionando al instalar (usando el instalador que crea) en el directorio del proyecto que lo utiliza, y tambien actualice alguno de los certificados y ahora esta funcionando, muchas gracias por responder!

Marcelo Javier Perales

unread,
Apr 12, 2025, 11:57:58 AM4/12/25
to pyaf...@googlegroups.com
Hola Javier.
1-Tenes que empezar eliminando toda la vieja instalación
2-También eliminar (o renombrar )la carpeta de la vieja instalación pyafipws donde la hayas instalado?
3-Tras hacer la nueva instalación siguiendo los pasos que pasé (y usando la httplib2 versión  0.9.2) fijate si los certificados estan donde apunta tu programa

¿ Está bien registrado wsaa.py ?:

Durante la ejecución de setup.bat se registran los componentes. fijate si tras la línea:
python wsaa.py --register  
tira error.

también podes escribir en la consola:
python wsaa.py
Y debería devolverte información como qué certificado está utillizando. Pero si en su lugar tira error es que está mal registrado.
En ese ultimo caso escribí:
python wsaa.py --register  

y si arroja error comentánoslo en este hilo a ver si los tiros van por ahí.

Saludos




Marcelo Javier Perales

unread,
Apr 12, 2025, 4:51:25 PM4/12/25
to pyaf...@googlegroups.com
 Seguramente fue algún problema con los certificados, porque si lo resolvió el mismo instalador generado, entiendo que tenias todo bien instalado. Genial. Saludos

Javier Macedo

unread,
Apr 13, 2025, 12:00:15 PM4/13/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola, al final quedo funcionando, pero hoy estamos trabajando con una maquina que tiene impresora de ticket, y me empezó a dar el error del campo de condición frente al iva del receptor, pero solo lo hace si esta la impresora.

Alguna idea? 

Marcelo Javier Perales

unread,
Apr 13, 2025, 9:59:25 PM4/13/25
to pyaf...@googlegroups.com
Hola. ¿Cómo es eso que te tira el error 10245 si tenes instalada una impresora, y si la desinstalas no?.... Algo de la instalación de la impresora afecta alguno de los componentes de la instalación de Pyafipws. Probá instalar primero la impresora y despues con el instalador de pyafipws.

Marcelo Javier Perales

unread,
Apr 13, 2025, 9:59:44 PM4/13/25
to pyaf...@googlegroups.com
Igual, como que no tienen relación la impresora con la facturación electrónica, y menos para que pase simplemente a trabajar como una versión sin actualizar, o sea... para mi que ahí tenes más de una carpeta de pyafipws, y tu sistema está levantando cosas viejas. Eliminá todas las carpetas de pyafipws de instalaciones anteriores, borrá todo lo que haya en el subdirectorio caché de la nueva carpeta de instalación.
 Porque no es posible que te apruebe facturas afip sin el mensaje 10245 solo por no tener la impresora instalada.
Fijate en tu sistema que no se cambie la raíz o el path donde se desarrolla el codigo de la facturación cuando tu programa trabaja con la impresora o mandas a imprimir.

Hacé esto:

patDemiprograma = app.path

Corré el codigo que se relacione con la impresora

Y despues trabajá con patDemiprograma  en lugar de app.path. De esa manera garantizas que no se modifique la ubicación de la carpeta pyafipws de la instalación correcta. O simplemente escribí el path completo en lugar de una variable: como ser "c:\pyafipws" si la carpeta está en el C.



 





Javier Macedo

unread,
Apr 14, 2025, 10:37:40 PM4/14/25
to PyAfipWs Factura Electrónica Libre y temas relacionados AFIP ARBA ANMAT
Hola, primero pedir disculpas, para mi (como para uds.) no puede haber una relación entre tener una impresora y la facturación, pero el programador que me ayuda con esto insistía jjajaja.

Bueno el domingo nos sentamos y lo resolvimos por suerte.

Muy agradecido con la comunidad, realmente tanto con las respuestas como con los múltiples hilos de problemas/ayuda son muy excelentes.

Y ni hablar de este hilo en particular del instaldor retro compatible!!!

Muchas gracias.

Marcelo Javier Perales

unread,
Apr 15, 2025, 1:01:36 AM4/15/25
to pyaf...@googlegroups.com
Genial, me alegro que lo hayan resuelto. Saludos

Reply all
Reply to author
Forward
0 new messages