Como posso criar um aplicativo de GUI de plataforma cruzada diretamente executável usando Python?

votos
224

Python funciona em várias plataformas e pode ser usado para aplicações desktop e web, assim, concluo que há alguma maneira de compilá-lo em um executável para Mac, Windows e Linux.

O problema é que eu não tenho nenhuma idéia por onde começar ou como escrever um GUI com ele, alguém pode lançar alguma luz sobre isso e me apontar na direção certa, por favor?

Publicado 05/08/2008 em 23:26
fonte usuário
Em outras línguas...                            


11 respostas

votos
232

Primeiro você vai precisar de alguma biblioteca GUI com vínculos Python e depois (se você quiser) algum programa que irá converter seus scripts python em executáveis ​​autônomos.

bibliotecas de GUI de plataforma cruzada com vínculos Python (Windows, Linux, Mac)

Claro, há muitos, mas o mais popular que eu vi no selvagem são:

  • Tkinter - baseado em Tk GUI Toolkit (de fato biblioteca GUI padrão para python, livre para projetos comerciais)
  • Wxpython - com base em WxWidgets (muito popular, livre para projetos comerciais)
  • PyQt - baseado em Qt (também muito popular e mais estável do que WxWidgets mas licença onerosa para projetos comerciais)

Lista completa está no http://wiki.python.org/moin/GuiProgramming

Único executável (Windows)

  • py2exe - Provavelmente o mais popular lá fora ( PyInstaller também está ganhando popularidade)

Único executável (Linux)

  • Congelar - funciona da mesma maneira como py2exe mas tem como alvo a plataforma Linux

Único executável (Mac)

  • py2app - mais uma vez, funciona como py2exe mas tem como alvo Mac OS
Respondeu 05/08/2008 em 23:34
fonte usuário

votos
47

Outro sistema (não mencionado na resposta aceita ainda) é PyInstaller, que trabalhou para um projeto PyQt meu quando py2exe não. Achei mais fácil de usar.

http://www.pyinstaller.org/

Pyinstaller baseia-se de Gordon McMillan Python Installer. Que não está mais disponível.

Respondeu 28/08/2008 em 09:41
fonte usuário

votos
14

Uma ferramenta alternativa para py2exe é bbfreeze que gera executáveis para Windows e Linux. É mais recente do que py2exe e manipula os ovos muito bem. Descobri que magicamente funciona melhor sem configuração para uma ampla variedade de aplicações.

Respondeu 15/08/2008 em 12:56
fonte usuário

votos
11

Há também PyGTK , que é basicamente um invólucro de Python para o Gnome Toolkit. Eu achei mais fácil de envolver minha mente em torno do que Tkinter, vindo de praticamente nenhum conhecimento de programação GUI anteriormente. Ele funciona muito bem e tem alguns bons tutoriais. Infelizmente não há um instalador para Python 2.6 para Windows, no entanto, e pode não ser por um tempo.

Respondeu 05/11/2008 em 16:53
fonte usuário

votos
6

Desde python está instalado em quase todos os não-Windows OS por padrão agora, a única coisa que você realmente precisa ter certeza é de que todas as bibliotecas não-padrão que você usa estão instalados.

Dito isto, é possível construir executáveis ​​que incluem o interpretador Python, e quaisquer bibliotecas que você usa. Esta é susceptível de criar um executável grande, no entanto.

MacOS X inclui ainda apoio no Xcode IDE para a criação de aplicações GUI independentes completos. Estes podem ser executado por qualquer usuário rodando Mac OS X.

Respondeu 06/08/2008 em 01:29
fonte usuário

votos
4

Para o próprio GUI:

PyQt é praticamente a referência.

Outra maneira de desenvolver uma interface de usuário rápida é escrever uma aplicação web, tê-lo executado localmente e exibir o aplicativo no navegador.

Além disso, se você ir para a opção Tkinter sugerido por Lubos Hasko você pode querer tentar portablepy ter sua corrida aplicativo em ambiente Windows sem Python.

Respondeu 19/08/2008 em 10:45
fonte usuário

votos
4

Eu não tenho certeza que esta é a melhor maneira de fazê-lo, mas quando eu estou implantando aplicações Ruby GUI (não Python, mas tem o mesmo "problema" na medida em .exe de estão em causa) no Windows, eu só escrever uma curta lançador em C # que chama no meu script principal. Ele compila para um executável, e eu, em seguida, ter um aplicativo executável.

Respondeu 15/08/2008 em 13:00
fonte usuário

votos
2
# 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

Então você deve usar py2exe, por exemplo, para trazer em uma pasta todos os arquivos necessários para executar o aplicativo, mesmo se o usuário não tiver o Python em seu pc (Eu estou falando das janelas ... para o sistema operacional da Apple, não há necessidade de um arquivo executável, acho que, como ele vem com python nele, sem qualquer necessidade de instalá-lo.

Criar este arquivo

1) Criar um setup.py

com este código:

de distutils.core py2exe importação de configuração de importação

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

salve-o em uma pasta

2) Coloque o seu programa na mesma pasta de setup.py colocar nesta pasta do programa que você deseja torná-lo distribuitable: es: l4h.py

ps: altera o nome do arquivo (a partir L4H a qualquer coisa que você quer, que é um exemplo)

3) Executar cmd dessa pasta (na pasta, clique direito + shift e escolher iniciar cmd aqui) 4) escrever em cmd:> python setup.py py2exe 5) na pasta dist existem todos os arquivos que você precisa 6) você pode fechá-lo e distribuí-lo

Respondeu 31/01/2017 em 19:51
fonte usuário

votos
1

PySimpleGUI envolve tkinter e funciona em Python 3 e 2,7. Você pode fazer GUIs personalizados que utilizam todos os mesmos widgets que você encontra em Tkinter (sliders, caixas de seleção, botões de rádio, ...). O código tende a ser muito compacto e legível.

#!/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()

Imagem criada a partir do código PySimpleGUI postada

Como explicado na documentação PySimpleGUI , para construir o arquivo .EXE de executar:

pyinstaller -wf MyGUIProgram.py

Respondeu 09/10/2018 em 12:30
fonte usuário

votos
1

Você não precisa compilar python para Mac / Windows / Linux. É uma linguagem interpretada, então você simplesmente precisa ter o interpretador Python instalado no sistema de sua escolha (ele está disponível para todas as três plataformas).

Quanto a uma biblioteca GUI que funciona em várias plataformas, de Python Tk / Tcl biblioteca de widgets funciona muito bem, e eu acredito que é suficientemente plataforma cruzada.

Tkinter é a interface python para Tk / Tcl

Da página do projeto python:

Tkinter não é o único conjunto de ferramentas GuiProgramming para Python. No entanto, é o mais comumente usado, e quase a única que é portátil entre Unix, Mac e Windows

Respondeu 05/08/2008 em 23:40
fonte usuário

votos
0

Você pode usar appJarpara o desenvolvimento básico 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 durante a execução

Consulte a documentação no local appJar .

A instalação é feita com pip install appjarde linha de comando.

Respondeu 08/06/2017 em 10:21
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more