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.whlpip install
http://www.sistemasagiles.com.ar/soft/pyafipws/pywin32-219-cp27-none-win32.whlNo 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.whlQue 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=sharingEl 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!