pyArq Presupuestos es un programa libre de mediciones, presupuestos y control de obras de construcción bajo la licencia GNU GPLv3 o posterior.
Es una aplicación desarrollada en el lenguaje interpretado Python y usa la biblioteca pyGTK como entorno gráfico, con la intención de ser un programa multiplataforma.
pyArq Presupuestos forma parte de mi proyecto pyArq.
El programa está aún en estado beta de desarrollo por lo que no hay aún una versión estable y funcional. Puede importar presupuestos y bases de precios normales en formato FIEBDC (bc3) para ser visualizadas, pero aún falta de implementar el registro P (registro paramétrico), por lo que no pueden importarse las bases de precios paramétricas. Nada más puede hacer, no se pueden crear, editar o guardar presupuestos, ni generar informes aún.
Hace ya tiempo que inicie la programación de pyArq Presupuestos con la intención principalmente de aprender a programar, eligiendo el lenguaje python por ser una plataforma libre y multiplataforma, pero sobre todo por ser uno de los lenguajes más fáciles de aprender ya que es interpretado, es decir no se necesita compilar para probar el código, es de muy alto nivel, potente y relativamente simple, con una sintaxis muy expresiva, concisa y fácil de entender, y muy popular en el entorno del software libre. Lo que hace que las aplicaciones en python se puedan desarrollar mucho mas rápido que en otros lenguajes. La contrapartida es la perdida de eficiencia, sobre todo comparado a lenguajes como C o C++.
Como entorno gráfico elegí GTK+ y la biblioteca para usarla con python pyGTK, una difícil elección frente a otras opciones como wxpython, biblioteca para usar wxwidget en python, que proporciona una interfaz gráfica basada en las bibliotecas ya existentes en el sistema por lo que se integra perfectamente en muchos entornos, y pyQT, biblioteca para usar QT en python, mucho más que sólo un entorno gráfico. Decidiéndome por pyGTK más que nada por mi afinidad con GTK y Gnome.
Para ahorrar tiempo en la importación de las bases de precios y también para poder guardar el estado del programa en todo momento de forma que pueda cerrarse en cualquier momento y abrirse presentándose en el mismo estado en que se cerró tengo pensado el uso del sistema de persistencia de objetos para aplicaciones escritas en Python Durus, aconsejado por jcea que es muy convincente a la hora de recomendar usar sistemas de persistencia de objetos frente a los sistemas tradicionales de bases de datos relacionales. Aprovecho aquí la ocasión para agradecer al resto de gente que pulula y/o pululaba por las salas de jabberes quienes me introdujeron en este mundillo del software libre.
Empecé con un proyecto de mediciones pues no había ningún proyecto en marcha, ni sigue habiéndolo que yo sepa, parar crear un programa de mediciones libre. Y me parecía algo lo suficientemente sencillo como para poder llevarse a cabo y lo suficientemente complejo como para ser un buen reto.
En principio la idea era pasar el proyecto a estado beta, versión 0.0, con acceso público, cuando cumpliera el primer objetivo, es decir cuando el programa hiciera algo útil para las personas usuarias, como poder importar y visualizar presupuestos y bases de precios en formato FIEBDC (bc3), este objetivo está bastante cerca de cumplirse aunque también es verdad que el desarrollo actual es bastante lento. Aunque siguiendo los consejos de Rafael Villar Burke y la máxima "publica pronto, publica a menudo" el proyecto pasó a estado Beta, haciendo que el desarrollo pueda ser seguido públicamente desde BitBucket.
No me funciona… me sale
rafael@rafael-desktop:~/Escritorio/pyarq-presupuestos$ sudo python pyArq-Presupuestos
Traceback (most recent call last):
File «pyArq-Presupuestos», line 48, in
from Gtk import gui
File «/home/rafael/.local/share/Trash/files/pyarq-presupuestos/Gtk/gui.py», line 56, in
from Gtk import importFiebdc
File «/home/rafael/.local/share/Trash/files/pyarq-presupuestos/Gtk/importFiebdc.py», line 36, in
from Generic import durusdatabase
File «/home/rafael/.local/share/Trash/files/pyarq-presupuestos/Generic/durusdatabase.py», line 25, in
from durus.file_storage import FileStorage
ImportError: No module named durus.file_storage
rafael@rafael-desktop:~/Escritorio/pyarq-presupuestos$
La carpeta Durus que he bajado del sitio web no contiene ninguna carpeta llamada durus.file_storage ni tampoco algun archivo con nombre FileStorage
Ese error te sale porque no tienes instalado el módulo de python durus. Ahora mismo es una dependencia y no funciona el programa sin este módulo, aunque ahora sólo lo uso para hacer pruebas, quizá tendría que no haberlo hecho imprescindible, pero bueno, de momento así está hasta que lo cambie. Es el problema de usar paquetes que no están entre los módulos básicos de python. Este ni siquiera esta en el repertorio de las distribuciones al menos en Debian no está.
Para instalarlo tienes que bajarlo de está web. (Creo que eso ya lo hiciste)
Después o bien lo instalas en tu sistema siguiendo la instrucciones del paquete que están en el fichero INSTALL.txt:
– Para poder compilar una parte del módulo necesitaras tener instalado un compilador, por ejemplo gcc. En ubuntu/Debian: $ sudo apt-get install gcc
– Descomprimir el tarball: $ tar zvxf Durus-3.9.tar.gz
– Entrar en la carpeta del módulo: $ cd Durus-3.9
– Ejecutar el comando de instalación como root:
Por ejemplo con sudo: $ sudo python setup.py install –record installed.txt
También puedes en vez de instalarlo simplemente copiar la carpeta Durus-3.9 dentro de la carpeta de mi programa pyarq-presupuestos. Y renombrar Durus-3.9 a durus para que así funcione la importación del módulo (esto es lo que te falta hacer, ya que no lo explique en las instrucciones). El problema que de esta forma durus sera poco eficiente pues tiene una pequeña parte del código escrito en C que necesita compilarse para ganar eficiencia. Quedaría entonces pyarq-presupuestos/durus/(el contenido de Durus-3.9). Si miras dentro veras que hay un fichero file_storage.py que es el que pretende importar mi programa.
Una cosa más. No ejecutes pyArq-Presupuestos como root, hazlo sin el sudo. Que aparte que no es necesario (que eso ya es suficiente razón), es un programa Beta y puede hacer cosas inesperadas (aunque espero que no)
Me falta hacer unas instrucciones de uso explicando bien estas cosas…
Ya me dirás si te funciona ahora
Ok. Ahora si.
En el foro te dejé comentarios e imágenes.
Saludos y ánimo con este proyecto.
Agregado tu proyecto a ::Foro-Arq-SL:: como programa candidato.
http://foroarqsl.creatuforo.com/ideas-para-aplicaciones-en-sl-para-arquitectura-tema29.html
Saludos
Andrés, gracias de nuevo por la difusión del proyecto.
Miguel Angel, coñe¡¡ haberlo comentao en mi blog¡¡¡¡¡¡ super NECESARIO y sobre todo para linux.
Olé un 10, ya tienes un Betatester :D.
El apa.
@El apa. No se me da bien lo de hacer spam por ahí, e ir comentado por páginas y webs lo de mi proyecto.
Es para linux, pero con intención de ser multiplaforma, ya lo he probado también en Mac OS X y en Windows (solo en XP, me falta probarlo en Vista y 7)
Encantado de que seas un betatester, me hace mucha falta que la gente lo pruebe y me diga si funciona bien o si por el contrario tiene problemas.
Miguel Angel, lo acabo de enlazar en el blog. Espero que sea de ayuda.
Saludos
@El apa, gracias por la difusión del proyecto
Una iniciativa excelente Miguel Angel…y muy necesaria. Hace falta buen desarrollo en SL para arquitectura y construcción. Demasiado soft propietario malo cobrando un pastizal por aplicaciones demasiado estandar…AnimOs
mOe:)
Gracias mOe:) por los ánimos y el interés en el proyecto.
Muy muy buena iniciativa, a ver si van saliendo programas de este tipo abiertos, y se va creando una comunidad de usuarios profesionales que los apoye. ¡Cuenta conmigo! Y enhorabuena por el trabajo.
Muy buena iniciativa la tuya, yo tambien tengo mi pequeño proyecto para hacer un programa de presupuestos de obra, pero hecho en gambas, pero solo fucionara en gnu/linux (y pronto en mac).
Creo que la tuya y la mia son las dos unicas iniciativas en softwarelibre que hay en español…
Osea que nos repartimos el mercado, 50% para cada uno…. 🙂
Saludos.
Que yuyu da que la gente dedique tiempo para los demás , Felicidades tío!