Cómo hacer un software usando Python

Analicemos esto en detalle, no se aburra solo lea y obtendrá lo que está buscando. ¡Puedo apostar por eso!
Empecemos.

Lo primero es lo primero, puedes hacer un excelente software / aplicación de escritorio usando Python. Dropbox es un software basado en Python, no es tan sorprendente.

  • KIT DE HERRAMIENTAS GUI:
    • Lo primero que necesitará son los kits de herramientas GUI para diseñar la interfaz de usuario (UI) para su aplicación. Para una IU tradicional, Qt es el claro ganador; es potente, parece nativo, tiene la comunidad más grande y se ejecuta en todas las plataformas principales (es decir, Windows, Mac, Linux, etc.). Hay dos enlaces diferentes: PyQt es más antiguo y más maduro, pero solo es gratuito si su software es de código abierto. Mientras, PySide es más nuevo y tiene una mejor licencia con características efectivas. Qt Designer Manual es un manual de arrastrar y soltar para diseñar su interfaz de usuario de manera efectiva.
    • Si necesita diseñar una interfaz de usuario simple, Tkinter es una buena opción. Se instala como parte de Python. Los detalles para instalar esta interfaz se proporcionan en este documento proporcionado por Python; tkinter: documentación de la interfaz de Python.
    • pygame es popular para diseñar juegos 2D simples y Free 3D Game Engine es el mejor marco para el diseño 3D.
  • Empaque y Distribución:
    • Las aplicaciones desarrolladas usando python se encuentran en el paquete Python. Se basa en Python para instalarse. Pero con la ayuda de las herramientas de Empaque y Distribución puede hacer que su aplicación sea independiente, puede instalarse en cualquier sistema.
    • cx_Freeze es una herramienta de congelación; crea un programa ejecutable (.Exe) a partir de sus programas de paquete Python. Funciona en Windows, Mac y Linux, pero necesita una versión separada de las aplicaciones para crear archivos ejecutables para cada plataforma.
    • PyInstaller es similar a cx_Freeze pero no es compatible con Python 3 a partir de ahora. Su especialidad es que puede crear un archivo ejecutable multiplataforma (.Exe) desde una sola aplicación.
    • py2exe es un módulo de congelación solo de Windows.
    • py2app es un módulo de congelación solo para Mac.
    • Empaquetar en Linux es la tarea más complicada, no recomendaré el sistema operativo Linux para desarrollar aplicaciones / software basados ​​en Python. La razón principal es que la distribución de Linux no tiene un solo formato de Empaque, el formato más popular es el de los paquetes deb; utilizado por Debian, Ubuntu y Mint. Mientras que los paquetes rpm son utilizados por Fedora y Red Hat.
  • Actualizar:
    • Python Package Index (Esky) es un marco que se utiliza para actualizar las aplicaciones Python congeladas (empaquetadas). Así es como obtienes las actualizaciones de las aplicaciones de software comunes.

Eso se trata de desarrollar software usando Python.
Espero que hayas conseguido lo que estabas buscando.

Se agradecería un UpVote.

Entonces quieres escribir una aplicación de escritorio en Python

Fuente | Blog

Agradezco a Thomas Kluyver, porque este artículo está escrito por él y está tan bien escrito que lo estoy publicando tal como está 🙂 <3

Esta es una descripción general de las mejores herramientas y los mejores recursos para crear aplicaciones de escritorio en Python.

Lo primero es lo primero. Puede crear excelentes aplicaciones de escritorio en Python, y algunas son ampliamente utilizadas (como Dropbox). Pero tendrá que encontrar su propio camino mucho más de lo que usaría los SDK de Microsoft o Apple. Lo bueno es que, con un poco de trabajo preliminar para empaquetarlo adecuadamente, es bastante factible escribir una aplicación Python que funcione en todas las plataformas principales.

Kits de herramientas de GUI

Lo primero que deberá elegir es un kit de herramientas GUI.

  • Para las IU de escritorio tradicionales, Qt es un claro ganador. Es poderoso, parece nativo en todas las plataformas principales y probablemente tenga la comunidad más grande. Hay dos enlaces de Python diferentes: PyQt es más antiguo y más maduro, pero solo es gratuito si su aplicación es de código abierto (licencia), mientras que PySide es más nueva y tiene una licencia más permisiva (LGPL). Me refiero mucho a los documentos principales de Qt, los ejemplos de C ++ se traducen principalmente a Python bastante bien, pero tanto los documentos de PyQt como los de PySide contienen información útil. Qt Designer es una interfaz de arrastrar y soltar para diseñar su interfaz de usuario; Puede compilar sus archivos .ui en módulos de Python con la herramienta de línea de comandos pyuic.

Qt Designer en acción

  • Para interfaces atractivas, estilo tableta, Kivy es la elección correcta. Es un sistema bastante joven pero prometedor. Si desea llevar su aplicación a tabletas y teléfonos inteligentes, entonces Kivy es la única opción que conozco. Más información
  • Cuando quieres una GUI básica y no te importa la estética, Tkinter es una opción simple. Está instalado como parte de Python. La documentación de tkinter de Python es bastante mínima, pero está vinculada a muchos otros recursos. Este sitio es mi favorito: no se ha actualizado en años, pero tampoco lo tiene Tkinter (excepto que en Python 3, importa tkinter en lugar de importar Tkinter).
  • Pygame es popular para construir juegos 2D simples. También hay marcos para gráficos 3D (pyglet, Panda3d), pero no sé mucho sobre ellos.
  • Una opción cada vez más popular es escribir su aplicación como un servidor web local y construir la interfaz de usuario en HTML y Javascript. Esto le permite utilizar el gran ecosistema de marcos web y bibliotecas de Python, pero es más difícil de integrar con las convenciones de escritorio para cosas como abrir archivos y administrar ventanas. CEF Python le permite crear una ventana para su aplicación, basada en Google Chrome, pero no lo he intentado.

Un par de alternativas que no recomendaría a menos que tenga una razón para preferirlas: GTK es popular en Linux, pero se ve feo en otras plataformas. Los enlaces pygtk más antiguos tienen excelente documentación; el nuevo sistema PyGObject, que admite versiones recientes de GTK y Python, no lo hace (aunque está mejorando). wx parece tener una buena comunidad, pero el desarrollo es lento, y los nuevos proyectos que podrían haberlo utilizado ahora parecen elegir Qt.

Empaque y Distribución

Esta es probablemente la parte más dura de hacer una aplicación en Python. Puede distribuir fácilmente herramientas para desarrolladores como paquetes de Python que se instalarán utilizando pip, pero los usuarios finales generalmente no tienen Python y pip ya configurados. Los paquetes de Python tampoco pueden depender de algo como Qt. Hay varias formas de empaquetar su aplicación y sus dependencias:

  • Pynsist, mi propio proyecto, crea un instalador de Windows que instala una versión de Python que usted especifique y luego instala su aplicación. A diferencia de las otras herramientas enumeradas aquí, no intenta ‘congelar’ su aplicación en un exe, sino que crea accesos directos que lanzan archivos .py. Esto evita ciertos tipos de errores.
  • cx_Freeze es una herramienta de congelación: hace que su aplicación sea un ejecutable. Funciona en Windows, Mac y Linux, pero solo produce el ejecutable para la plataforma en la que lo ejecuta (por ejemplo, no puede hacer un exe de Windows en Linux). Puede hacer paquetes simples (.msi para Windows, .dmg para Mac, .rpm para Linux), o puede alimentar su salida a NSIS o Inno Setup para tener más control sobre la construcción de un instalador de Windows.
  • PyInstaller es similar a cx_Freeze. Todavía no es compatible con Python 3 (actualización: ahora lo es, desde octubre de 2015), pero tiene la capacidad de producir un ejecutable de ‘archivo único’.
  • py2app es una herramienta de congelación específica para construir paquetes Mac .app.
  • py2exe es una herramienta de congelación solo para Windows. El desarrollo se detuvo por mucho tiempo, pero al momento de escribir hay una actividad reciente en él.

Empaquetado de Linux

Aunque algunas de las herramientas de congelación pueden crear binarios de Linux, la forma preferida de distribuir software es hacer un paquete que contenga solo su aplicación, que depende de Python y de las bibliotecas que utiliza su aplicación. Por lo tanto, su paquete no contiene todo lo que necesita, pero le dice al administrador de paquetes qué otras piezas necesita instalar.

Desafortunadamente, los procedimientos para prepararlos son bastante complejos, y las distribuciones de Linux aún no tienen un formato de paquete común. Los principales son paquetes deb, utilizados por Debian, Ubuntu y Mint, y paquetes rpm, utilizados por Fedora y Red Hat. No conozco una guía buena y simple para empaquetar aplicaciones de Python para cualquiera: si encuentra una o escribe una, hágamelo saber.

Puede hacer que los usuarios descarguen e instalen su paquete, pero si desea que reciba actualizaciones a través del administrador de paquetes, deberá alojarlo en un repositorio. El envío de su paquete a los repositorios principales de la distribución facilita la instalación de los usuarios, pero tiene que cumplir con los estándares de calidad de la distribución, y generalmente no puede enviar nuevas versiones de funciones a las personas, excepto cuando actualizan toda la distribución. Algunas distribuciones ofrecen alojamiento para repositorios personales: los PPA de Ubuntu o los repositorios de Fedorapeople de Fedora. También puede configurar un repositorio en su propio servidor.

Si no quiere pensar en todo eso, simplemente haga un tarball de su aplicación y explique a los usuarios de Linux al lado de la descarga lo que requiere.

Diverso

  • Subprocesos : si su aplicación hace algo que demore más de una décima de segundo, debe hacerlo en un subproceso en segundo plano, para que su IU no se bloquee. Asegúrese de interactuar solo con elementos de la GUI del hilo principal, o puede obtener valores predeterminados. El GIL de Python no es un gran problema aquí: el hilo de la interfaz de usuario no debería necesitar mucho tiempo de procesamiento de Python.
  • Actualizaciones : Esky es un marco para actualizar aplicaciones congeladas de Python. No lo he probado, pero parece interesante.