Come posso creare un eseguibile direttamente-cross-platform GUI app utilizzando Python?

voti
224

Python funziona su più piattaforme e può essere utilizzato per applicazioni desktop e web, quindi ne deduco che ci sia un modo per compilarlo in un file eseguibile per Mac, Windows e Linux.

Il problema è non ho idea di dove cominciare o come scrivere una GUI con essa, nessuno può far luce su questo e mi punto nella giusta direzione per favore?

È pubblicato 05/08/2008 alle 21:26
fonte dall'utente
In altre lingue...                            


12 risposte

voti
232

In primo luogo sarà necessario un qualche libreria GUI con Python e poi (se si desidera) qualche programma che permette di convertire i vostri script python in eseguibili standalone.

librerie GUI cross-platform con binding Python (Windows, Linux, Mac)

Naturalmente, ci sono molti, ma il più popolare che ho visto in natura sono:

  • Tkinter - basata su Tk GUI toolkit (libreria GUI standard de-facto per python, gratis per i progetti commerciali)
  • WxPython - basata su WxWidgets (molto popolare, gratuita per i progetti commerciali)
  • PyQt - basata su Qt (anche molto popolare e più stabile di WxWidgets ma licenza costosa per i progetti commerciali)

Elenco completo è a http://wiki.python.org/moin/GuiProgramming

eseguibile singolo (Windows)

  • py2exe - Probabilmente il più popolare là fuori ( PyInstaller sta guadagnando in popolarità)

eseguibile singolo (Linux)

  • Fermo - funziona allo stesso modo come py2exe ma si rivolge piattaforma Linux

eseguibile singolo (Mac)

  • py2app - ancora una volta, funziona come py2exe ma obiettivi Mac OS
Risposto il 05/08/2008 a 21:34
fonte dall'utente

voti
1

Non è necessario per compilare Python per Mac / Windows / Linux. Si tratta di un linguaggio interpretato, in modo da semplicemente bisogno di avere l'interprete Python installato sul sistema di vostra scelta (è disponibile per tutte e tre le piattaforme).

Per quanto riguarda una libreria GUI che funziona cross platform, di Python Tk / Tcl libreria di widget funziona molto bene, e credo che sia sufficientemente cross platform.

Tkinter è l'interfaccia python a Tk / Tcl

Dalla pagina web del progetto pitone:

Tkinter non è l'unico toolkit GuiProgramming per Python. E 'comunque quello più comunemente usato, e quasi l'unico che sia portabile tra Unix, Mac e Windows

Risposto il 05/08/2008 a 21:40
fonte dall'utente

voti
6

Dal momento che Python è installato su quasi tutti i non-sistema operativo Windows di default ora, l'unica cosa che si ha realmente bisogno di fare certi è che tutte le librerie non-standard che si usa sono installati.

Detto questo, è possibile costruire gli eseguibili che includono l'interprete Python e le librerie che si usa. Questo rischia di creare un grande eseguibile, tuttavia.

MacOS X include anche il supporto in Xcode IDE per la creazione di applicazioni GUI pieno standalone. Questi possono essere eseguiti da qualsiasi utente che esegue OS X.

Risposto il 05/08/2008 a 23:29
fonte dall'utente

voti
14

Uno strumento alternativo per py2exe è bbfreeze che genera eseguibili per Windows e Linux. E 'recente rispetto py2exe e gestisce le uova abbastanza bene. Ho trovato magicamente funziona meglio senza di configurazione per una vasta gamma di applicazioni.

Risposto il 15/08/2008 a 10:56
fonte dall'utente

voti
4

Non sono sicuro che questo è il modo migliore per farlo, ma quando sto implementando le applicazioni Rubino GUI (non Python, ma ha lo stesso "problema" per quanto .exe sono interessati) su Windows, ho appena scritto una breve launcher in C # che chiama sul mio script principale. Si compila in un file eseguibile, e poi ho un eseguibile dell'applicazione.

Risposto il 15/08/2008 a 11:00
fonte dall'utente

voti
4

Per la GUI per sé:

PyQT è praticamente il riferimento.

Un altro modo per sviluppare un'interfaccia utente rapida è quello di scrivere una web app, fare eseguire a livello locale e visualizzare l'applicazione nel browser.

Inoltre, se si va per l'opzione Tkinter suggerito da Lubos Hasko si consiglia di provare portablepy di avere la corsa app sul ambiente Windows senza Python.

Risposto il 19/08/2008 a 08:45
fonte dall'utente

voti
47

Un altro sistema (non menzionato nella risposta accettato ancora) è PyInstaller, che ha lavorato per un progetto PyQt di mio quando py2exe no. Ho trovato più facile da usare.

http://www.pyinstaller.org/

Pyinstaller si basa su di Gordon McMillan Python Installer. Il che non è più disponibile.

Risposto il 28/08/2008 a 07:41
fonte dall'utente

voti
11

C'è anche PyGTK , che è fondamentalmente un wrapper Python per lo Gnomo Toolkit. Ho trovato più facile per avvolgere la mia mente intorno a Tkinter, provenienti da praticamente nessuna conoscenza di programmazione GUI in precedenza. Funziona abbastanza bene e ha alcuni buoni tutorial. Purtroppo non c'è un programma di installazione per Python 2.6 per Windows ancora, e non può essere per un po '.

Risposto il 05/11/2008 a 14:53
fonte dall'utente

voti
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

Poi si dovrebbe usare py2exe, per esempio, di portare in una cartella tutti i file necessari per eseguire l'applicazione, anche se l'utente non ha Python sul suo pc (sto parlando delle finestre ... per il sistema operativo di Apple non è necessario di un file eseguibile, credo, in quanto sono dotati di pitone in esso senza bisogno di installarlo.

Creare questo file

1) Creare un setup.py

con questo codice:

da distutils.core configurazione di importazione import py2exe

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

salvarlo in una cartella

2) Mettere il programma nella stessa cartella di setup.py messo in questa cartella il programma che si vuole rendere distribuitable: es: l4h.py

ps: modificare il nome del file (da L4h a tutto quello che vuoi, che è un esempio)

3) Esegui cmd da quella cartella (la cartella, fare clic destro + shift e scegli iniziare cmd qui) 4) in cmd:> python setup.py py2exe 5) nella cartella dist ci sono tutti i file necessari 6) si può zip e distribuirlo

Risposto il 31/01/2017 a 17:51
fonte dall'utente

voti
0

È possibile utilizzare appJarper lo sviluppo di base 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 l'esecuzione

Vedere la documentazione al sito appJar .

L'installazione è realizzata con pip install appjarda linea di comando.

Risposto il 08/06/2017 a 09:21
fonte dall'utente

voti
1

PySimpleGUI avvolge Tkinter e funziona su Python 3 e 2,7. È possibile effettuare interfacce grafiche personalizzate che utilizzano tutti gli stessi widget che si trovano in Tkinter (cursori, caselle di controllo, pulsanti di opzione, ...). Il codice tende ad essere molto compatto e leggibile.

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

Immagine creata dal codice PySimpleGUI postato

Come spiegato nella documentazione PySimpleGUI , per costruire il file .EXE si esegue:

pyinstaller -WF MyGUIProgram.py

Risposto il 09/10/2018 a 11:30
fonte dall'utente

voti
0

!!! KIVY !!!

Sono rimasto stupito vedendo che nessuno ha menzionato Kivy !!!

Ho una volta fatto un progetto che utilizza Tkinter, anche se lo fanno avvocato che è migliorato molto, ancora mi dà una sensazione di Windows 98, quindi sono passato a Kivy .

Ho seguito una serie di tutorial se aiuta ...

Tanto per dare un'idea di sguardi come kivy, vedere questo (Il progetto sto lavorando su):

Il progetto che sto lavorando

E ho lavorato su di esso per appena una settimana ora! I vantaggi per Kivy si chiede? controllare questo

Il motivo per cui ho scelto questo è, il suo aspetto e che può essere utilizzato in mobile pure.

Risposto il 10/01/2020 a 08:24
fonte dall'utente

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