Domanda

Python funziona su più piattaforme e può essere utilizzato per applicazioni web e desktop, così concludo che c'è qualche modo per compilare un eseguibile per Mac, Windows e Linux.

Il problema è che non ho idea da dove cominciare o come scrivere una GUI con esso, c'è qualcuno che può far luce su questo e mi punto nella giusta direzione per favore?

È stato utile?

Soluzione

Innanzitutto avrete bisogno di una qualche libreria GUI con binding Python e poi (se vuoi) qualche programma che permette di convertire il vostro script python in eseguibili standalone.

Cross-piattaforma di librerie grafiche con Python bindings (Windows, Linux, Mac)

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

  • Tkinter - sulla base di Tk GUI toolkit (standard de-facto la libreria GUI in python, gratuito per progetti commerciali)
  • WxPython - sulla base di WxWidgets (popolare, gratuito per progetti commerciali)
  • Qt utilizzando il PyQt associazioni o Qt per Python.La prima non è libero per progetti commerciali.Quest'ultimo è meno maturo, ma può essere utilizzato per libero.

L'elenco completo è a http://wiki.python.org/moin/GuiProgramming

Unico eseguibile (tutte le piattaforme)

Unico eseguibile (Windows)

  • py2exe - usato per essere il più popolare

Unico eseguibile (Linux)

  • Congelare - funziona allo stesso modo come py2exe, ma gli obiettivi piattaforma Linux

Unico eseguibile (Mac)

  • py2app - di nuovo, funziona come py2exe, ma gli obiettivi Mac OS

Altri suggerimenti

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

http://www.pyinstaller.org/

Pyinstaller è basato su Gordon McMillan Python programma di installazione.Che non è più disponibile.

Uno strumento alternativo per py2exe è bbfreeze che genera eseguibili per windows e linux.È più recente di py2exe e gestisce le uova molto bene.Ho trovato magicamente funziona meglio senza di configurazione per un'ampia varietà di applicazioni.

C'è anche PyGTK, che è fondamentalmente un wrapper Python per Gnome Toolkit.Io l'ho trovato più facile per avvolgere la mia mente intorno di Tkinter, provenienti da praticamente nessuna conoscenza di programmazione di GUI in precedenza.Funziona abbastanza bene e ha alcuni buoni tutorial.Purtroppo, non c'è un installer per Python 2.6 per Windows di sicurezza, e non può essere per un po'.

Dato che python è installato su quasi ogni sistema operativo diverso da Windows per impostazione predefinita ora, l'unica cosa che si ha realmente bisogno per assicurarsi che tutti i non-librerie standard utilizzati sono installati.

Detto questo, è possibile costruire un pacchetto che include l'interprete python, e tutte le librerie utilizzate.Questo rischia di creare un eseguibile di grandi dimensioni, tuttavia.

MacOS X include anche il supporto in Xcode IDE per la creazione di piena autonoma di applicazioni con interfaccia grafica.Questi possono essere eseguiti da qualsiasi utente che esegue OS X.

Per la stessa interfaccia grafica:

PyQT è praticamente il riferimento.

Un altro modo per sviluppare un rapido interfaccia utente è quello di scrivere una web app, hanno eseguito localmente e visualizzare le app nel browser.

Inoltre, se si va per Tkinter opzione suggerita da lubos hasko si può provare a portablepy per avere la vostra applicazione eseguita in ambiente Windows senza Python.

Io non sono sicuro che questo è il modo migliore per farlo, ma quando sto distribuzione di Ruby applicazioni con interfaccia grafica (non in Python, ma ha lo stesso "problema" per quanto riguarda .exe sono interessati) su Windows, vi basta scrivere una breve launcher in C# che chiama sul mio script principale.Si compila un file eseguibile, e poi ho un'applicazione eseguibile.

# 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

Quindi si dovrebbe utilizzare 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 di windows...per il sistema operativo apple non c'è bisogno di un file eseguibile, credo che, come è venuto con python senza bisogno di alcuna installazione.

Creare questo file

1) Creare un setup.py

con questo codice:

from distutils.core import setup
import py2exe

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

salvarlo in una cartella

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

ps:modificare il nome del file (da l4h a tutto ciò che si desidera, che è un esempio)

3) Esegui cmd da una cartella (la cartella, fare clic destro + shift e scegliere di avviare il cmd qui)
4) scrivere il comando " cmd:>python setup.py py2exe
5) nel dist cartella ci sono tutti i file di cui avete bisogno
6) si può zip e distribuire

Pyinstaller

Installarlo da cmd

**

pip install pyinstaller

**

Eseguito dal cmd dalla cartella in cui il file è

**

pyinstaller file.py

**

PySimpleGUI avvolge tkinter e opere su Python 3 e 2.7.Funziona anche su Qt, WxPython e in un browser web, utilizzando lo stesso codice per tutte le piattaforme.

Si può fare interfacce grafiche utente (Gui che utilizzano tutti gli stessi widget che si trova 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()

Image created from posted PySimpleGUI code

Come spiegato nel PySimpleGUI Documentazione, per costruire il .File EXE si esegue:

pyinstaller -wF MyGUIProgram.py

Non hai bisogno di compilare python per Mac/Windows/Linux.Si tratta di un linguaggio interpretato, quindi è sufficiente per avere l'interprete Python installato sul sistema di vostra scelta (è disponibile per tutte e tre le piattaforme).

Come per una libreria GUI che funziona cross platform, Python Tk/Tcl libreria dei widget funziona molto bene, e credo che sia sufficientemente cross-platform.

Tkinter è l'interfaccia python per Tk/Tcl

Dal progetto di python pagina web:

Tkinter non è il solo GuiProgramming toolkit per Python.È tuttavia il più comunemente usato, e quasi il solo uno che è portatile tra Unix, Mac e Windows

È possibile utilizzare appJar di base per lo sviluppo di 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

Vedere la documentazione in appJar sito.

L'installazione viene effettuata con pip install appjar da linea di comando.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top