PDA

Ver la Versión Completa : Aplicaciones para escritorio con Python


Julián
02-04-2011, 21:53:52
Supongamos que hay una base de datos, por ejemplo oracle, y supongamos que tenemos que hacer una aplicacion que pueda conectarse a ella para hacer cualquier cosa. Y supongamos que queremos tener una aplicación que pieuda ejecutarse en Windows, como las que podemos hacer con Delphi, o sea, con ventanas, buttons, richedits y cosas de esas. Sin usar el api de windows, claro, pues nos gustaría que dicha aplicación pudiera ejecutarse tambien, aunque hubiera que compilarla o lo que fuera, sobre Linux, o sobre OSX, incluso sobre Android.

¿Sirve Python pa una cosa así?
¿Necesitaría usar algún "set de widgets"o algo así? ?Cual?
¿Es Python la mejor elección para eso?

Vuestros consejos serán bienvenidos y agradecidos. La humanidad lo hará. :D

D-MO
02-04-2011, 22:22:45
Primero, Python no se compila (al menos no de manera explícita), basta con que ejecutes python micodigo.py para que el interprete compile (o traduzca a bytecode).

Para acceso a datos, algunos recomiendan SQLAlchemy (http://www.sqlalchemy.org/), yo la verdad lo he usado poco, me ha bastado con el ORM de django (http://docs.djangoproject.com/en/dev/topics/db/) (me muevo en la web), sin embargo está en mi lista de estudio pendiente.

Para el escritorio, wxPython (http://wxpython.org), pyGtk (http://pygtk.org), pyQT (http://www.riverbankcomputing.co.uk/news), y un largo (http://wiki.python.org/moin/GuiProgramming) etcétera de posibilididades

wxPython es el que he usado (en mis pruebas), pyGtk no me gustó :D, pyQt lo tengo pendiente, pero se ve prometedor el diseñador para QT (http://qt.nokia.com/products/) de Nokia (http://nokia.com), ya lo instalé pero a decir verdad no lo he tocado.

Decir que es la mejor elección, la verdad no se, es probable que para algunos si y para otros no, sin embargo, una buena elección si es.

Saludos.

D-MO
02-04-2011, 22:38:02
Por cierto, SQLAlchemy abstrae el acceso a datos permitiendo trabajar solamente con código python, sin metermos al SQL (aunque no nos impide hacerlo). Esto permite la portabilidad entre un motor de bases de datos y otro.

Para el acceso a datos de manera tradicional podemos encontrar ayuda acá: http://wiki.python.org/moin/DatabaseProgramming/

Saludos.

mamcx
02-04-2011, 22:58:03
¿Sirve Python pa una cosa así?
¿Necesitaría usar algún "set de widgets"o algo así? ?Cual?
¿Es Python la mejor elección para eso?


1. Sirve? Si.

2. Depende de....

3. Lo mejor? NO.

Es como con java. El problema NO es el lenguaje como tal. Es la integración con la interface gráfica. La parte que mata la idea de la multiplataforma en desktop es que la unica forma de lograrlo es apuntando a minimo comun denominador, o sea, a lo mediocre.

El resultado varia mucho entre plataformas. Por lo que veo, el MEJOR soporte (y por mucho) es en OSX. Puedes hacer aplicaciones en python+coccoa que son idistingibles de las hechas en Obj-C.

Con Linux, es la misma bobada de siempre...

Con windows, puede lograrse algo similar, pero, no existe algo como la integracion de serie que hace apple con osx... asi que hay que esforzarse mas.

De todas maneras, si la GUI es simple y te conformas con lo que se puede hacer con QT o WX, aqui estan las opciones:

http://wiki.python.org/moin/GuiProgramming

(Tengo entendido que las mejores opciones son con WX, Qt y Coccoa -osx)


Y con la idea de ejecutar una app de escritorio en un movil? Porfa, olvidalo!
----------

Sin embargo una opcion muy practica, es hacer como hago con BestSeller: La interface grafica en la plataforma "aprovada" del OS (en mi caso, Delphi) y logica en python. Puede usarse algo como Python for delphi (http://mmm-experts.com/Products.aspx?ProductId=3) y funciona muy bien.

De hecho, python es muy popular como lenguaje embeido dentro de un host hecho en C++ (o delphi) y asi es como funciona la cosa en Blender, por ejemplo.

La logica de negocios y la parte no visual porta muy facil. La interface grafica, siempre es mejor adaptarla a cada ambiente y OS. O realmente te gustaria un boton "Inicio" en tu app de Linux :D