¿Es posible crear una aplicación de escritorio usando django? – python django

Pregunta:


He visto proyectos como Atom, que utilizan tecnologías web para realizar apps de escritorio; sin embargo, me gustaría saber si esto es posible con django.

Si es posible, es práctico? En el sentido de que no será mucho más complicado que hacer una app web con este framework; dejando de lado que lo más probable es que será mas lento que una aplicación nativa.

La idea es no depender de Internet para poder utilizar la aplicación y aprovechar tecnologías web como HTML, CSS, JS y Django para desarrollarla.

Preguntado por: Javier Cárdenas

Comunidad

Sí, es posible. Como se indica en esta pregunta de StackOverflow en inglés y en los enlaces de la misma, tienes bastantes alternativas:

PyInstaller

PyInstaller empaqueta programas en Python en aplicaciones de escritorio para Windows, Linux, Mac OS X, FreeBSD, Solaris y AIX. Según su propia página web, sus principales ventajas sobre otras aplicaciones similares es que:

  • Funciona con Python 2.7 y 3.3-3.5.
  • Los ejecutables son más pequeños.
  • Utiliza el soporte del SO para cargar las bibliotecas dinámicas, asegurando la compatibilidad.

En la página de GitHub se explica cómo a partir de la versión 2.1 se pueden crear aplicaciones de escritorio desarrolladas con Django, y se muestra un pequeño ejemplo con código (en inglés).

DjangoKit

Nota: sólo funciona para aplicaciones Mac OS.

Es una posibilidad sugerida en la propia pregunta enlazada arriba, porque Hamza buscaba utilidades que no sólo funcionaran para Mac sino también para Windows y Linux.

El proyecto está alojado en GitHub, donde puedes encontrar un par de ejemplos y documentación (en inglés)… aunque parece que su desarrollo ha estado parado por casi 8 años.

cx_Freeze.

El primer enlace (en inglés) de esa pregunta es bastante descriptivo, en el Siddharta explica cómo consiguió crear una aplicación de escritorio (o mejor dicho simularla) siguiendo este método:

  • Desarrolló la aplicación web en Python con Django.
  • Usó cx_freeze para empaquetar todo en un ejecutable.
  • Utilizó sqlite3 como base de datos porque es embebida y no necesita instalación.
  • Configuró Toopfy para ejecutar Django por defecto.

Usando esta configuración, cx_Freeze junta el servidor, Django, sqlite3, el código de la aplicación y el intérprete de Python y los empaqueta en un ejecutable. La aplicación está preconfigurada para usar sqlite3 como base de datos y el servidor está preconfigurado para correr Django.

py2exe

Nota: sólo funciona para aplicaciones Windows.

En el segundo enlace (en inglés) de la pregunta, Joseph Jude explica que tuvo problemas con la solución de Shiddarta y con dbuilder.py y explica cómo utilizó py2exe para convertir sus aplicaciones en Python en aplicaciones de escritorio:

  • Importó todos los modulos requeridos de Django.
  • Integró su código con CherryPy.
  • Utilizó sqlite como base de datos.

En ese mismo enlace puedes encontrar el código paso a paso (con ejemplos de errores que encontró y la solución que les dio) y un enlace a Google Docs para bajarte una versión del proyecto.

py2app

Nota: sólo funciona para aplicaciones Mac.

Según la documentación oficial: py2app es un comando setuptools de Python que permite crear aplicaciones independientes, paquetes y plugins a partir de scripts de Python. py2app es similar en diseño y propósito a py2exe, pero en este caso para Mac OS X en lugar de Windows.

Puedes encontrar un ejemplo de integración de Django con py2app en el GitHub de Kevin London.

dbuilder.py

En la pregunta enlazada arriba, Massimo Fazzolari recomienda dbuilder.py en su respuesta, ya que dbuilder.py se creó especificamente para convertir código desarrollado en Django en aplicaciones de escritorio.

Según la documentación de la herramienta en GitHub, dbuilder.py es una utilidad que toma un proyecto en Django y organiza los archivos necesarios para crear una aplicación de escritorio, permitiendo diferentes opciones a la hora de crear la distribución.

En la página de GitHub se incluye amplia documentación sobre cómo usar la herramienta (en inglés sólo) y pequeños ejemplos.

Super Zippy

Nota: sólo funciona para aplicaciones Linux y Mac OS X.

Massimo Fazzolari también recomienda esta utilidad que toma paquetes de Python y sus dependencias de Python puras y lo convierte todo en un único fichero ejecutable.

Según la página web del proyecto, los únicos sistemas operativos soportados son Linux y Mac OS X pero debería funcionar en cualquier sistema operativo (aunque no se garantiza nada). Y tampoco aparece ninguna referencia a Django en particular, lo cual puede ser una mala señal.

El sitio de GitHub contiene código y ejemplos con demostraciones de cómo funciona la herramienta.

Fuente

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *