Skip to content

The first open specification and implementation for electronic reports storage, formerly known as COLD (Computer output to laser disk)

Notifications You must be signed in to change notification settings

pmoracho/openerm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OPENERM

OpenERM es la primera especificación "abierta" para el almacenamiento de reportes electrónicos. Las siglas OERM hacen referencia a Open electronic report management una forma moderna de llamar lo que hace algunos años se conocía como COLD, Computer output to laser disk. Asimismo es la primer implementación oficial de dicha especificación.

Requisitos iniciales

Para poder empezar a usar este proyecto, tanto para desarrollo como para ejecutar las herramientas, el primer paso es "clonar" este repositorio en nuestro sistema. Para esto, necesitaremos Git y una consola de sistema:

En Windows:

  • Git for Windows instalado y funcionando
  • Una terminal de Windows, puede ser el clásico cmd.exe.

En Linux

  • Git instalado y funcionando, hoy en día es raro que no venga instalado por defecto. Si fuera el caso consultar la documentación del SO para ver como instalarlo.
  • Una consola tipo bash.

Para verificar la instalación, simplemente, desde la consola, podremos hacer:

# > git -- version
# > git version 2.7.4

Instalación de Python

Para desarrollo de la herramienta es necesario, en primer término, descargar un interprete Python. openerm ha sido desarrollado inicialmnete con la versión 3.4, pero debiera funcionar perfectamente bien con cualquier versión de la rama 3x.

En Windows

  1. Se descarga y se instala en el sistema el interprete Python deseado. A partir de ahora trabajaremos en una terminal de Windows (cmd.exe). Para verificar la correcta instalación, en particular que el interprete este en el PATH del sistemas, simplemente corremos python --version, la salida deberá coincidir con la versión instalada.

  2. Es conveniente pero no mandatorio hacer upgrade de la herramienta pip: python -m pip install --upgrade pip

En Linux

Consultar la documentación de su SO.

Descarga e instalación del repositorio del proyecto

Teniendo una carpeta base o "root" para el proyecto, digamos por ejemplo: c:\proyectos o ~/proyectos, simplemente haremos:

# > cd proyectos 
# > git clone https://github.com/pmoracho/openerm.git openerm.git
# > cd openerm.git

(*) por las dudas, respetar el nombre del proyecto openerm.git para la carpeta destino.

Instalación de Virtualenv

(*) Importante: Python a partir de la versión 3x incorpora scripts para generarar los entornos virtuales, por lo que eventualmente no es necesario instalar ´virtualvenv´, de todas formas dejó documentado aquí este metódo. Si queremos minimizar la instalación de herramientas innecesarias, podemos ir directamente a Creación y activación del entorno virtual (con python)

Para poder ejecutar cualquiera de las herramientas del proyecto, ya vimos que necesitamos un interprete de Python, sin embargo es una mala práctica depender directamente de la instalación inicial. Es más óptimo generar un entorno de Python, exclusivo para este proyecto. De esta forma logramos una estabilidad en el interprete y sobre todo en los paquetes adicionales o dependencias del proyecto.

Virutalenv. Es la herramienta estándar para crear entornos "aislados" de Python. Este proyecto, requiere de Python 3x y de varios "paquetes" adicionales de versiones específicas. Para no tener conflictos de desarrollo lo que haremos mediante esta herramienta es crear un "entorno virtual" en una carpeta del proyecto (que llamaremos venv), dónde una vez "activado" dicho entorno podremos instalarle los paquetes que requiere el proyecto. Este "entorno virtual" contendrá una copia completa de Python y los paquetes mencionados, al activarlo se modifica el PATH al interprete python.exe de modo que apunte a nuestra carpeta del entorno y nuestras propias librerías, evitando cualquier tipo de conflicto con un entorno Python ya existente o futuro, así como cualquier eventual cambio a niveSO. La instalación de virtualenv se hará mediante:

# > pip install virtualenv

Creación y activación del entorno virtual (con virtualven)

Una vez instalado Virutalenv, deberemos crear nuestro entorno virtual dentro de la carpeta del proyecto, que es lo más recomendable, aunque podría ser cualquier otra carpeta. La creación se realizará mediante el comando:

# > virtualenv -p python3 venv --clear --prompt=openerm

Para "activar" el entorno simplemente hay que correr el script de activación que se encontrará en la carpeta .\venv\Scripts (en linux sería ./venv/bin)

Por ejemplo:

C:\..\>  .\venv\Scripts\activate.bat
[openerm] C:\..\> 

Como se puede notar se ha cambiado el prompt con la indicación del entorno virtual activo, esto es importante para no confundir entornos si trabajamos con múltiples proyecto Python al mismo tiempo. El prompt puede variar de sistema a sistema, pero es útil verificar que el PATH a el interprete, esté apuntando a la carpeta del proyecto.

Creación y activación del entorno virtual (con python)

Parados en la carpeta principal del proyecto, ejecutar:

python3 -m venv --clear --prompt=openerm venv

Para activar este entorno:

C:\..\>  .\venv\Scripts\activate.bat
openerm C:\..\> 

o bien

# source .\venv\bin\activate
(openerm) # 

Por último conviene actualizar las herramientas de pip:

pip install --upgrade pip setuptools wheel

Instalación de requerimientos

Mencionábamos que este proyecto requiere varios paquetes adicionales, la lista completa está definida en el archivo requirements.txt para instalarlos en nuestro entorno virtual, simplemente:

[openerm] C:\..\> pip install -r requirements.txt

Importante:

En este proyecto, los siquientes paquetes están construidos directamente con código C o C++:

  • blosc
  • pylzma
  • python-snappy
  • zstd

lo cual, normalmente, suele traernos dolores de cabeza al instalarlos, ya que requieren de:

  • Un entorno de compilación de C/C++ (gcc o Visual Studio dependiendo del SO)
  • Código fuente adicional, normalmente los archivos de cabecera (.h) de la librería en cuestión

En Linux puede ser algo más sencillo ya que por lo general el compilador C/C++ suele venir incluido en el sistema o eventualmente es un procedimiento estándar instalarlo, igual que el código fuente adicional que viene en la forma de paquetes para desarrollo.

En Windows es un poco más complicado, ya que además de un compilador C/C++, normalmente un Visual Studio, necesitaremos que sea de una versión determinada, consistente con la usada para compilar nuestro interprete Python. Lo siguiente es conseguir el código de las librerías, instalarlo y lograr configurar todo para que el proceso de instalación de dependencias, el sencillo comando pip install -r requirements.txt, pueda llegar a compilar estos paquetes sin problemas. Creanme, no es tarea fácil. Por suerte existe esto: Unofficial Windows Binaries for Python Extension Packages, que es un sitio mantenido por Christoph Gohlke, dónde se publican versiones ya compiladas, es decir los binarios, de los principales paquetes, y muy importante, para las distintas versiones oficiales de Python. Se trata de paquetes wheel, un formato binario, que puede ser instalado en nuestro entorno, de manera muy sencilla: pip install paquete.whl

About

The first open specification and implementation for electronic reports storage, formerly known as COLD (Computer output to laser disk)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages