InstalacionCodigoFuente

Mariano Reingart edited this page Jan 14, 2017 · 29 revisions

Antes de proceder, recomendamos revisar y consultar los siguientes sitios:

  • Repositorio (releases): actualizaciones generales, versiones de evaluación (instaladores y paquetes de código fuente)
  • Sistemas Ágiles: soporte comercial pago (asesoramiento inicial gratuito por email). Documentación Manual de Uso, Actualizaciones
  • Grupo de Usuarios: novedades, consultas y comentarios generales (foro público abierto, comunitario y gratuito)
  • Python Argentina: soporte técnico sobre python comunitario gratuito (por lista de correo, chat, etc.)
  • Sitio Web del Proyecto: información técnica y anuncios
  • Incidencias: tickets con cuestiones técnicas internas del proyecto para su resolución.
  • VIDEO Explicativo Paso a Paso: Windows 10 ¡nuevo! (funciona también para Windows 8.1, 7 y otros), o WinXP sobre instalación en Windows: Python, dependencias y prueba en producción.

Instalación desde el código fuente

Para usar la interfaz y herramientas relacionadas no es necesario compilar ni empaquetar o generar instaladores, simplemente se puede utilizar el código fuente (respetando la licencia GPLv3 de software libre), como se describe a continuación:

Descargar el código fuente:

hg clone git+https://github.com/reingart/pyafipws.git pyafipws  --config extensions.hggit=

Para WSFEv1 y WSMTXCA es necesaria adicionalmente la librería PySimpleSoap, especificamente la rama pysimplesoap-reingart.zip (archivo comprimido)

Para PyRece es necesaria adicionalmente la librería PyFPDF, recomendamos la última versión de desarrollo pyfpdf.zip (archivo comprimido)

Para PyI25 (códigos de barra) es requerida la biblioteca Python Imaging Library (PIL), y también podría usarse Pillow ("fork" disponible en PyPI)

GNU/Linux

Debian y derivados (Ubuntu)

Instalar dependencias:

sudo apt-get install python-httplib2 python-m2crypto python-pip

Descargar e instalar PySimpleSoap:

sudo pip install pysimplesoap==1.08.9 --upgrade

Nota: se recomienda actualizar a la version estable 1.08 actualizada, ya que la versión de desarrollo tiene algunos temas menores de incompatibilidad por nuevas características que se han agregado y están en revisión.

En caso de recibir ssl.SSLEOFError: EOF occurred in violation of protocol (_ssl.c:590), utilizar versión pysimplesoap==1.08.8 para compatibilidad con protocolo de seguridad antiguo en homologación.

Descargar e instalar PyFPDF:

sudo pip install pyfpdf --upgrade

Para usar el diseñador visual de plantillas PDF o PyRece, necesitará instalar adicionalmente wxPython y gui2py

sudo apt-get install wxpython
sudo pip install gui2py

Fedora, CentOS, Red-Hat

Actualizar Python 2.6 (versiones antiguas vienen con python 2.4 que no es compatible), probado en CentOS release 5.10:

wget http://download.fedoraproject.org/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -ivh epel-release-5-4.noarch.rpm
yum install python26

Instalar dependencia httplib2:

wget https://github.com/httplib2/httplib2/archive/master.zip -O httplib2
unzip httplib2.zip
cd httplib2-*
python2.6 setup.py install

Instalar librería pysimplesoap para para webservices:

wget https://pysimplesoap.googlecode.com/archive/reingart.zip -O pysimplesoap-reingart.zip
unzip pysimplesoap-reingart.zip
cd pysimplesoap-*
python2.6 setup.py install

Instalar librería pyfpdf para PDF:

wget https://github.com/httplib2/httplib2/archive/master.zip -O pyfpdf.zip
unzip pyfpdf.zip
cd pyfpdf-*
python2.6 setup.py install

Windows

Dependencias

Para utilizar este proyecto, desde el código fuente, debe descargar y ejecutar los instaladores de los siguientes requisitos (seleccionar la columna según versión del sistema operativo y arquitectura de CPU):

Software a Instalar Python 2.5 (WinXP) Python 2.7 (Win7 o sup) 32 bits Python 2.7 (Win7 o sup) 64 bits Notas
Python (lenguaje programación) Python 2.5.4 Python 2.7.12 Python 2.7.12 "amd64" soporte para Python 3.x próximamente
OpenSSL (seguridad SSL/TLS) Win32OpenSSL 0.9.7m ** Win32OpenSSL 1.0.2j Win64OpenSSL 1.0.2j opcional, solo necesario para generar certificados / compilar M2Crypto
M2Crypto (OpenSSL para Python) inst. v0.18.2 ** inst. v0.22.3 * inst. v0.21.1 "amd64" o superior, salvo 0.19 no funcionaba correctamente
httplib2 (biblioteca conexión HTTP) fuentes v0.4.0 inst. v0.9 * inst. v0.9 "amd64" * Para instalar las fuentes, descomprimir y ejecutar por línea de comando: c:\python27\python.exe setup.py install
Extensiones Windows para interfase COM pywin32 inst. v220 inst. v220 "amd64" opcional, solo para comunicación con VB, VFP, .NET, Java y similares
PySimpleSOAP (webservices) fuentes (zip) inst. v1.08d (PyPI) inst. v1.08d "amd64" (PyPI) Ver abajo para versiones actualizadas
PyFPDF (generación PDF) fuentes (zip) inst. v1.7.2 (PyPI) inst. v1.7.2 "amd64" (PyPI) Ver abajo para versiones actualizadas
PIL / Pillow (imágenes) inst. v1.1.7 inst. v1.1.7 inst. v2.7.0 "amd64" (PyPI) solo necesario para generación de imágenes

Notas:

  • Algunos paquetes (marcados con asterisco *) se han compilado y subido a nuestro servidor para facilitar la instalación a los nuevos usuarios. Por favor dirigirse al sitio de cada proyecto para obtener los paquetes oficiales o mayor información.
  • Ciertos paquetes son versiones históricas (marcados con dos asteriscos **), alojados para compatibilidad hacia atrás.
  • Se recomienda Python 2.7.9 o superior para nuevas instalaciones, ya que incorpora las últimas características y cubre los recientes temas de seguridad.
  • Las versiones "amd64" también funcionan para arquitecturas Intel x86 64 bits (se utiliza la denominación original).

Adicionales

Para soporte proxy avanzado instalar ScksiPy y copiar socks.py en C:\Python27\Lib\site-packages Opcional (no sería necesario para python 2.7). Recomendamos PyCurl para cuestiones avanzadas y esquemas de autenticación propietaria (compatibilidad con MS ISA Server)

Para usar el diseñador visual de plantillas PDF o PyRece, necesitará instalar adicionalmente wxPython (versión 2.8.10.1 para Python 2.5) y gui2py

Para usar la tablas de intercambio dbf (dBase, Clipper, Fox Pro, etc.) se debe instalar dbf 0.88.019 o superior (descomprimirla en la carpeta de pyafipws, y los .py deben quedar adentro de la subcarpeta dbf). Ver el paquete actualizado en PyPI para versiones posteriores

NOTA: Se recomienda revisar los sitios en búsqueda de actualizaciones que pudieran corresponder, y verificar que la versión de la biblioteca descargada es compatible con la versión de Python elegida.

Registración

Para registrar el Servidor COM y poder acceder desde otros lenguajes ejecutar:

c:\python27\python.exe wsaa.py --register
c:\python27\python.exe wsfev1.py --register
c:\python27\python.exe wsmtx.py --register
c:\python27\python.exe wsfexv1.py --register
c:\python27\python.exe wscoc.py --register
c:\python27\python.exe wsctg3.py --register
c:\python27\python.exe wslpg.py --register
c:\python27\python.exe cot.py --register
c:\python27\python.exe trazamed.py --register

Generación de Instalador

Instalar py2exe.

Para los nuevos instaladores para Windows es necesario tener Nullsoft Scriptable Install System (NSIS): http://nsis.sourceforge.net/Main_Page

Para generar los nuevos instaladores revisar el script de instalación setup.py y ejecutar:

c:\python27\python.exe setup.py py2exe

Ver documentación del nuevo instalador en Manual (pasos, opciones e instalación desatendida).

Para el instalador antiguo (desaconsejado ya que es obsoleto y no soporta todos los servicios web), ejecutar el archivobuild-pyafipws.bat incluido dentro del código fuente. Dicho archivo genera los mismos instaladores todo-en-uno distribuidos por este proyecto.

Para armar el paquete comprimido autoextraible se requiere la herramienta 7-zip:

  • 7za465.zip (compresor 7z.exe por linea de comando)
  • 7za914.zip (extras para autoextractor 7zSD.sfx)

Instalación automatizada

Importante: esta sección es para usuarios avanzados, recomendamos ver el video explicativo y la sección anterior para un método más general.

Para facilitar la instalación se proveen dos scripts que automatizan el proceso:

  • venv.bat: crea un entorno virtual (opcional, ver abajo)
  • setup.bat: descarga e instala las dependencias, registrando todos los componentes

Pasos instalación rápida:

  1. Descargar pyafipws-master.zip, descomprimirlo e ingresar a la carpeta pyafipws-master
  2. Ejecutar setup.bat (doble click o por una consola cmd)

Se recomienda ejecutarlos como Administrador, y es necesario instalar Python 2.7.9 previamente. Los usuarios avanzados pueden ejecutar previamente venv.bat por consola, para crear un entorno virtual.

Para mayor información ver siguientes secciones con los detalles.

Desarrollo

Para obtener el código fuente de las dependencias principales (en especial para los contribuidores que deseen realizar ajustes), recomendamos clonar una versión actualizada desde el repositorio.

Nota: este paso no es necesario si el paquete se ha instalado según las instrucciones en las secciones previas.

Para PySimpleSoap, realizar los siguientes pasos:

hg clone git+https://github.com/pysimplesoap/pysimplesoap.git  --config extensions.hggit=
cd pysimplesoap
hg update reingart
c:\python27\python.exe setup.py install

Ver nota sobre rama reingart en sección anterior.

Ídem para PyFPDF:

hg clone git+https://github.com/reingart/pyfpdf/ 
cd pyfpdf
c:\python27\python.exe setup.py install

Uso en Producción

Por diseño, la interfaz COM (wsaa.py, wsfev1.py) y herramientas (rece1.py, recex1.py y receb1.py) funcionan en modo homologación, para habilitar modo producción, por ej. editar la linea #35:

HOMO = True

y cambiarla a:

HOMO = False

De lo contrario, la interfaz no tendrá en cuenta las URLs de los servidores de Producción, aunque sean informadas en CallWSAA y Conectar.

Nota: Esto no aplica a los módulos para Python (wsfev1.py, wsfexv1.py, etc.), pero también por defecto funcionan con URL de homologación.

Lo mismo aplica para WSFEv1 y WSMTXCA.

Entornos Virtuales (virtualenv)

Los siguientes comandos clonan el repositorio, crean un virtualenv e instalan los paquetes requeridos (incluyendo las últimas versiones de las dependencias) para evitar conflictos con otras bibliotecas.

venv en GNU/Linux

Ejemplo para Debian/Ubuntu (abrir una terminal y ejecutar los comandos):

sudo apt-get install python-dev swig python-virtualenv mercurial python-pip libssl-dev python-dulwich
hg clone git+https://github.com/reingart/pyafipws.git   --config extensions.hggit=
cd pyafipws
virtualenv venv
source venv/bin/activate
pip install -r requirements.txt

venv en Windows

Para Windows es similar, ver pre-requisitos arriba:

  • descargar get-pip.py y ejecutarlo (doble-click). Nota: Sólo versiones antiguas de Python (menor a 2.7.9) que no tengan pip incorporado
  • abrir una consola de comandos (cmd) y ejecutar pip.exe install wheel
  • abrir una consola de comandos (cmd) y ejecutar pip.exe install virtualenv

Para compilar las dependencias binarias -M2Crypto-, instalar adicionalmente:

Ejemplo para Windows (instalar previamente Python 2.7.9 y ejecutar los siguientes comandos en una consola cmd):

Instalar utilidades de instalación / entorno virtual:

pip install --upgrade pip
pip install --upgrade wheel
pip install --upgrade virtualenv

Crear y activar el entorno virtual venv (en el directorio actual)

virtualenv venv
venv\Scripts\activate

Instalar las dependencias binarias (precompiladas):

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

Instalar el resto de los requerimientos:

pip install -r requirements.txt