Pregunta

Python funciona en múltiples plataformas y puede usarse para aplicaciones web y de escritorio, por lo que concluyo que hay alguna manera de compilarlo en un ejecutable para Mac, Windows y Linux.

El problema es que no tengo idea de por dónde empezar o cómo escribir una GUI con ella. ¿Alguien puede arrojar algo de luz sobre esto y señalarme la dirección correcta, por favor?

¿Fue útil?

Solución

Primero necesitará alguna biblioteca GUI con enlaces de Python y luego (si lo desea) algún programa que convierta sus scripts de Python en ejecutables independientes.

Bibliotecas GUI multiplataforma con enlaces de Python (Windows, Linux, Mac)

Por supuesto, hay muchos, pero los más populares que he visto en estado salvaje son:

La lista completa está en http://wiki.python.org/moin/GuiProgramming

Ejecutable único (todas las plataformas)

Ejecutable único (Windows)

  • py2exe - solía ser el más popular

Ejecutable único (Linux)

  • Congelar - Funciona de la misma manera que py2exe pero apunta a la plataforma Linux.

Ejecutable único (Mac)

  • py2app - nuevamente, funciona como py2exe pero apunta a Mac OS

Otros consejos

Otro sistema (aún no mencionado en la respuesta aceptada) es PyInstaller, que funcionó para un proyecto mío de PyQt cuando py2exe no.Me resultó más fácil de usar.

http://www.pyinstaller.org/

Pyinstaller está basado en el instalador Python de Gordon McMillan.Que ya no está disponible.

Una herramienta alternativa a py2exe es bbfreeze que genera ejecutables para windows y linux.Es más nuevo que py2exe y maneja huevos bastante bien.Descubrí que mágicamente funciona mejor sin configuración para una amplia variedad de aplicaciones.

También hay PyGTK, que es básicamente un contenedor de Python para Gnome Toolkit.Me ha resultado más fácil entenderlo que Tkinter, ya que prácticamente no tenía conocimiento previo de programación GUI.Funciona bastante bien y tiene algunos buenos tutoriales.Desafortunadamente, todavía no existe un instalador de Python 2.6 para Windows, y es posible que no lo haya por un tiempo.

Dado que Python ahora está instalado en casi todos los sistemas operativos que no son Windows de forma predeterminada, lo único que realmente necesita asegurarse es que todas las bibliotecas no estándar que utiliza estén instaladas.

Dicho esto, es posible crear ejecutables que incluyan el intérprete de Python y cualquier biblioteca que utilice.Sin embargo, es probable que esto cree un ejecutable de gran tamaño.

MacOS X incluso incluye soporte en Xcode IDE para crear aplicaciones GUI completamente independientes.Estos pueden ser ejecutados por cualquier usuario que ejecute OS X.

Para la propia GUI:

PyQT es prácticamente la referencia.

Otra forma de desarrollar una interfaz de usuario rápida es escribir una aplicación web, hacer que se ejecute localmente y mostrar la aplicación en el navegador.

Además, si elige la opción Tkinter sugerida por Lubos Hasko, es posible que desee probar Portablepy para que su aplicación se ejecute en el entorno de Windows sin Python.

No estoy seguro de que esta sea la mejor manera de hacerlo, pero cuando implemento aplicaciones Ruby GUI (no Python, pero tiene el mismo "problema" en lo que respecta a los .exe) en Windows, simplemente escribo un Lanzador corto en C# que llama a mi script principal.Se compila en un ejecutable y luego tengo un ejecutable de aplicación.

# I'd use tkinter for python 3

import tkinter

tk = tkinter.Tk()
tk.geometry("400x300+500+300")
l = Label(tk,text="")
l.pack()
e = Entry(tk)
e.pack()

def click():
    e['text'] = 'You clicked the button'

b = Button(tk,text="Click me",command=click)
b.pack()

tk.mainloop()

# After this I would you py2exe
# search for the use of this module on stakoverflow
# otherwise I could edit this to let you know how to do it

py2exe

Entonces deberías usar py2exe, por ejemplo, para traer en una carpeta todos los archivos necesarios para ejecutar la aplicación, incluso si el usuario no tiene Python en su PC (estoy hablando de Windows...Creo que para el sistema operativo Apple no hay necesidad de un archivo ejecutable, ya que viene con Python sin necesidad de instalarlo.

Crea este archivo

1) Crea un setup.py

con este código:

from distutils.core import setup
import py2exe

setup(console=['l4h.py'])

guardarlo en una carpeta

2) Ponga su programa en la misma carpeta de setup.py, coloque en esta carpeta, el programa que desea que lo distribuya:es:l4h.py

PD:cambia el nombre del archivo (de l4h al que quieras, ese es un ejemplo)

3) Ejecute cmd desde esa carpeta (en la carpeta, haga clic derecho + mayúsculas y elija iniciar cmd aquí)
4) escribe en cmd:>python setup.py py2exe
5) en la carpeta dist están todos los archivos que necesitas
6) puedes comprimirlo y distribuirlo

Pyinstaller

instalarlo desde cmd

**

pip instalar pyinstaller

**

Ejecútelo desde el cmd de la carpeta donde está el archivo.

**

archivo pyinstaller.py

**

PySimpleGUI incluye tkinter y funciona en Python 3 y 2.7.También se ejecuta en Qt, WxPython y en un navegador web, utilizando el mismo código fuente para todas las plataformas.

Puede crear GUI personalizadas que utilicen los mismos widgets que encuentra en tkinter (controles deslizantes, casillas de verificación, botones de opción, ...).El código tiende a ser muy compacto y legible.

#!/usr/bin/env python
import sys
if sys.version_info[0] >= 3:
    import PySimpleGUI as sg
else:
    import PySimpleGUI27 as sg

layout = [[ sg.Text('My Window') ],
          [ sg.Button('OK')]]

window = sg.Window('My window').Layout(layout)
button, value = window.Read()

Image created from posted PySimpleGUI code

Como se explica en el Documentación de PySimpleGUI, a construir el archivo .EXE tu corres:

pyinstaller -wF MiProgramaGUI.py

No es necesario compilar Python para Mac/Windows/Linux.Es un lenguaje interpretado, por lo que simplemente necesitas tener instalado el intérprete de Python en el sistema de tu elección (está disponible para las tres plataformas).

En cuanto a una biblioteca GUI que funcione multiplataforma, Python Tk/Tcl La biblioteca de widgets funciona muy bien y creo que es suficientemente multiplataforma.

Tkinter es la interfaz de Python para Tk/Tcl

Desde la página web del proyecto Python:

Tkinter no es el único kit de herramientas de guiprogramación para Python.Sin embargo, es el más utilizado, y casi el único que es portátil entre UNIX, Mac y Windows

Puedes usar appJar para el desarrollo básico de GUI.

from appJar import gui

num=1

def myfcn(btnName):   
    global num
    num +=1
    win.setLabel("mylabel", num)

win = gui('Test')

win.addButtons(["Set"],  [myfcn])
win.addLabel("mylabel", "Press the Button")

win.go()

GUI when running

Ver documentación en sitio appJar.

La instalación se realiza con pip install appjar desde la línea de comando.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top