Hvordan kan jeg opprette en direkte-kjørbar cross-platform GUI app ved hjelp av Python?

stemmer
230

Python fungerer på flere plattformer og kan brukes for desktop og web-applikasjoner, så jeg konkludere med at det er noen måte å kompilere den i en kjørbar for Mac, Windows og Linux.

Problemet er jeg har ingen anelse om hvor du skal begynne eller hvordan du skriver en GUI med det, kan noen kaste lys over dette, og peke meg i riktig retning please?

Publisert på 05/08/2008 klokken 22:26
kilden bruker
På andre språk...                            


11 svar

stemmer
240

Først trenger du noen GUI bibliotek med Python bindinger og deretter (hvis du vil) noe program som vil konvertere python scripts til frittstående kjørbare.

Cross-platform GUI biblioteker med Python bindinger (Windows, Linux, Mac)

Selvfølgelig, det er mange, men de mest populære som jeg har sett i naturen er:

  • Tkinter - basert på Tk GUI toolkit (de-facto standard GUI bibliotek for python, gratis for kommersielle prosjekter)
  • WxPython - basert på wxWidgets (veldig populært, fri for kommersielle prosjekter)
  • PyQt - basert på Qt (også veldig populært og mer stabil enn wxWidgets men kostbar lisens for kommersielle prosjekter)

Komplett liste er på http://wiki.python.org/moin/GuiProgramming

Enkelt kjørbar (Windows)

  • py2exe - Trolig den mest populære der ute ( PyInstaller er også stadig i popularitet)

Enkelt kjørbar (Linux)

  • Freeze - fungerer på samme måte som py2exe men rettet mot Linux-plattform

Enkelt kjørbar (Mac)

  • py2app - igjen, fungerer som py2exe men rettet mot Mac OS
Svarte 05/08/2008 kl. 22:34
kilden bruker

stemmer
49

Et annet system (ikke nevnt i den aksepterte svaret ennå) er PyInstaller, som jobbet for en PyQt prosjekt av meg når py2exe ville ikke. Jeg fant det lettere å bruke.

http://www.pyinstaller.org/

Pyinstaller er basert på Gordon McMillan Python Installer. Som ikke lenger er tilgjengelig.

Svarte 28/08/2008 kl. 08:41
kilden bruker

stemmer
14

Et alternativ verktøy for å py2exe er bbfreeze som genererer kjørbare for Windows og Linux. Det er nyere enn py2exe og håndterer egg ganske godt. Jeg har funnet det magisk fungerer bedre uten konfigurasjon for en rekke bruksområder.

Svarte 15/08/2008 kl. 11:56
kilden bruker

stemmer
11

Det er også PyGTK , som er utgangspunktet en Python wrapper for Gnome Toolkit. Jeg har funnet det lettere å vikle meg rundt enn Tkinter, som kommer fra stort sett ingen kunnskap om GUI-programmering tidligere. Det fungerer ganske bra, og har noen gode tutorials. Dessverre er det ikke et installasjonsprogram for Python 2.6 for Windows ennå, og kan ikke være for en stund.

Svarte 05/11/2008 kl. 15:53
kilden bruker

stemmer
6

Siden python er installert på nesten alle ikke-Windows OS som standard nå, er det eneste du egentlig trenger å være sikker på at alle de ikke-standard bibliotekene du bruker er installert.

Når det er sagt, det er mulig å bygge kjør som inkluderer python tolk, og eventuelle bibliotekene du bruker. Dette er sannsynlig å skape en stor kjørbar, men.

MacOS X inneholder til og med støtte i X-kode IDE for å lage kompstående grafiske programmer. Disse kan kjøres av alle brukere som kjører OS X.

Svarte 06/08/2008 kl. 00:29
kilden bruker

stemmer
4

For GUI selv:

PyQt er ganske mye referansen.

En annen måte å utvikle en rask brukergrensesnitt er å skrive en web-app, må det kjøres lokalt og vise programmet i nettleseren.

Og hvis du går for Tkinter alternativet foreslått av Lubos Hasko kan det være lurt å prøve portablepy å ha din app kjøres på Windows-miljø uten Python.

Svarte 19/08/2008 kl. 09:45
kilden bruker

stemmer
4

Jeg er ikke sikker på at dette er den beste måten å gjøre det, men når jeg distribuere Ruby grafiske programmer (ikke Python, men har det samme "problemet" så langt som EXE-er bekymret) på Windows, jeg bare skrive en kort launcher i C # som kaller på min hoved script. Det kompilerer til en kjørbar, og jeg har da et program kjørbar.

Svarte 15/08/2008 kl. 12:00
kilden bruker

stemmer
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

Da bør du bruke py2exe, for eksempel for å få inn en mappe alle filene som trengs for å kjøre programmet, selv om brukeren ikke har Python på hans pc (jeg snakker av vinduer ... for apple os er det ikke nødvendig av en kjørbar fil, tror jeg, som det kommer med python i det uten behov for å installere den.

Lag denne filen

1) Lag en setup.py

med denne koden:

from distutils.core import setup
import py2exe

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

lagre den i en mappe

2) Sett program i samme mappe av setup.py satt i denne mappen programmet du ønsker å gjøre det distribuitable: es: l4h.py

ps: endre navnet på filen (fra l4h til hva du vil, det er et eksempel)

3) Kjør cmd fra den mappen (på mappen, høyreklikk + shift og velg starte cmd her)
4) skrive i cmd:> python setup.py py2exe
5) i dist-mappen er det alle de filene du trenger
6) du kan zip det og fordele det

Pyinstaller

Installere det fra cmd

**

PIP installere pyinstaller

**

Kjør den fra cmd fra mappen der filen er

**

pyinstaller file.py

**

Svarte 31/01/2017 kl. 19:51
kilden bruker

stemmer
1

PySimpleGUI wraps tkinter og fungerer på Python 3 og 2,7. Du kan lage egendefinerte GUI som utnytter alle de samme widgets som du finner i tkinter (glidere, avkrysningsbokser, radioknapper, ...). Koden har en tendens til å være svært kompakt og lesbar.

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

Bilde laget av postet PySimpleGUI kode

Som forklart i PySimpleGUI Dokumentasjon , å bygge EXE-filen du kjører:

pyinstaller -wF MyGUIProgram.py

Svarte 09/10/2018 kl. 12:30
kilden bruker

stemmer
1

Du trenger ikke å kompilere python for Mac / Windows / Linux. Det er et tolket språk, slik at du bare trenger å ha Python installert på systemet ditt valg (det er tilgjengelig for alle tre plattformene).

Som for en GUI bibliotek som fungerer cross platform, Pythons Tk / Tcl fungerer widget bibliotek veldig bra, og jeg tror er tilstrekkelig cross platform.

Tkinter er python grensesnitt til Tk / Tcl

Fra python-prosjektet nettsiden:

Tkinter er ikke den eneste GuiProgramming verktøykasse for Python. Det er imidlertid den mest brukte ett, og nesten det eneste som er bærbare mellom Unix, Mac og Windows

Svarte 05/08/2008 kl. 22:40
kilden bruker

stemmer
0

Du kan bruke appJarfor grunnleggende GUI utvikling.

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 når du kjører

Se dokumentasjon på appJar stedet .

Installasjonen er laget med pip install appjarfra kommandolinjen.

Svarte 08/06/2017 kl. 10:21
kilden bruker

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