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 21:26
fonte usuário
Em outras línguas...                            


12 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 21:34
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 21:40
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 05/08/2008 em 23:29
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 10:56
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 11:00
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 08:45
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 07:41
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 14:53
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 17:51
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 09:21
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 11:30
fonte usuário

votos
0

!!! Kivy !!!

Fiquei espantado vendo que ninguém mencionou Kivy !!!

Eu tenho uma vez feito um projeto usando Tkinter, embora eles defendem que ele tem melhorado muito, ainda me dá uma sensação do Windows 98, então eu mudei para Kivy .

Tenho vindo a acompanhar uma série de tutoriais se isso ajuda ...

Só para dar uma idéia da aparência como Kivy, consulte este (O projeto que estou trabalhando):

O projeto que eu estou trabalhando em

E eu tenho vindo a trabalhar sobre isso por apenas uma semana agora! Os benefícios para Kivy você pergunta? Verifique este

A razão pela qual eu escolhi este é, sua aparência e que ele pode ser usado em móveis também.

Respondeu 10/01/2020 em 08:24
fonte usuário

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