Wie kann ich eine direkt ausführbare Cross-Plattform-GUI-Anwendung mit Python erstellen?

stimmen
224

Python arbeitet auf mehreren Plattformen und kann für Desktop- und Web-Anwendungen verwendet werden, so schließe ich, dass es eine Möglichkeit, es in eine ausführbare Datei für Mac, Windows und Linux zu kompilieren ist.

Das Problem ist, ich habe keine Ahnung, wo ich anfangen oder wie man eine GUI, mit ihm zu schreiben, kann jemand etwas Licht in diese Schuppen und mir bitte in die richtige Richtung?

Veröffentlicht am 05/08/2008 um 23:26
quelle vom benutzer
In anderen Sprachen...                            


11 antworten

stimmen
232

Zuerst werden Sie einige GUI-Bibliothek mit Python-Anbindung benötigen und dann irgendein Programm (wenn Sie möchten), die Ihre Python-Skripte in eigenständige ausführbare Dateien konvertieren.

Cross-Plattform-GUI-Bibliotheken mit Python-Bindings (Windows, Linux, Mac)

Natürlich gibt es viele, aber die beliebteste, dass ich in wild gesehen habe:

  • Tkinter - basierend auf Tk - GUI - Toolkit (de-facto - Standard - GUI - Bibliothek für Python, kostenlos für kommerzielle Projekte)
  • WxPython - basierend auf WxWidgets (sehr beliebt, frei für kommerzielle Projekte)
  • PyQt - basierend auf Qt (auch sehr beliebt und stabiler als WxWidgets aber teure Lizenz für kommerzielle Projekte)

Komplette Liste ist bei http://wiki.python.org/moin/GuiProgramming

Einzelne ausführbare Datei (Windows)

  • py2exe - Die wohl beliebteste da draußen ( PyInstaller gewinnt auch in der Popularität)

Einzelne ausführbare Datei (Linux)

  • Freeze - funktioniert auf die gleiche Art und Weise wie py2exe aber zielt auf Linux - Plattform

Einzelne ausführbare Datei (Mac)

  • py2app - wieder funktioniert wie py2exe aber zielt auf Mac OS
Beantwortet am 05/08/2008 um 23:34
quelle vom benutzer

stimmen
47

Ein anderes System (nicht in der akzeptierten Antwort erwähnt noch) ist PyInstaller, die für ein PyQt Projekt von mir gearbeitet, als py2exe wollte nicht. Ich fand es einfacher zu bedienen.

http://www.pyinstaller.org/

Pyinstaller basiert auf Gordon McMillan Python Installer. Das ist nicht mehr verfügbar.

Beantwortet am 28/08/2008 um 09:41
quelle vom benutzer

stimmen
14

Ein alternatives Werkzeug ist zu Py2exe bbfreeze die ausführbaren Dateien für Windows, Linux erzeugt. Es ist neuer als py2exe und Griffe ganz gut Eier. Ich habe es auf magische Weise ohne Konfiguration für eine Vielzahl von Anwendungen funktioniert besser gefunden.

Beantwortet am 15/08/2008 um 12:56
quelle vom benutzer

stimmen
11

Es gibt auch PyGTK , die im Grunde ein Python - Wrapper für den Gnome - Toolkit ist. Ich habe es leichter umschlingen als Tkinter meines Kopf gefunden, die aus so ziemlich ohne Kenntnis der GUI - Programmierung zuvor. Es funktioniert ziemlich gut und hat einige gute Tutorials. Leider gibt es kein Installationsprogramm für Python 2.6 für Windows noch und kann nicht für eine Weile sein.

Beantwortet am 05/11/2008 um 16:53
quelle vom benutzer

stimmen
6

Da Python jetzt auf fast jedes Nicht-Windows-Betriebssystem standardmäßig installiert ist, müssen das einzige, was Sie wirklich sicher ist, dass alle der Nicht-Standard-Bibliotheken installiert sind Sie verwenden.

Having said that, es möglich ist, ausführbare Dateien zu erstellen, die die Python-Interpreter umfassen, und alle Bibliotheken, die Sie verwenden. Dies ist wahrscheinlich eine große ausführbare, aber zu schaffen.

MacOS X enthält auch Unterstützung in den Xcode-IDE für die vollen Standalone-GUI-Anwendungen zu erstellen. Diese können von jedem Benutzer ausgeführt werden unter OS X.

Beantwortet am 06/08/2008 um 01:29
quelle vom benutzer

stimmen
4

Für die GUI selbst:

PyQT ist so ziemlich das Referenz.

Eine weitere Möglichkeit, eine schnelle Benutzeroberfläche zu entwickeln, ist ein Web-App zu schreiben, haben sie lokal und zeigen die App im Browser ausgeführt.

Plus, wenn Sie für die Tkinter Option gehen von lubos Hasko vorgeschlagen, dass Sie möchten portablepy versuchen, Ihre App laufen ohne Python auf Windows-Umgebung zu haben.

Beantwortet am 19/08/2008 um 10:45
quelle vom benutzer

stimmen
4

Ich bin nicht sicher, dass dies der beste Weg ist, es zu tun, aber wenn ich Ruby-GUI-Anwendungen bin die Bereitstellung von (nicht Python, hat aber das gleiche „Problem“ so weit wie .exe die betroffen sind) auf Windows, ich schreibe gerade ein kurze Abschuss in C #, die auf meinem Haupt-Skript aufrufen. Es kompiliert zu einer ausführbaren Datei, und ich habe dann eine ausführbare Anwendung.

Beantwortet am 15/08/2008 um 13:00
quelle vom benutzer

stimmen
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

Dann sollten Sie py2exe verwenden, zum Beispiel, in einem Ordner alle Dateien zu bringen benötigt, um die App zu starten, auch wenn der Benutzer nicht auf seinen PC Python hat (ich spreche von Fenstern ... für die Apple OS ist es nicht erforderlich, einer ausführbaren Datei, glaube ich, wie es ohne Notwendigkeit der Installation mit python in ihm kommen.

Erstellen Sie diese Datei

1) Erstellen Sie eine setup.py

mit diesem Code:

von distutils.core Import Setup Import py2exe

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

speichern Sie sie in einem Ordner

2) Setzen Sie Ihr Programm im gleichen Ordner von setup.py in dem das Programm setzte Ordner, den Sie distribuitable es machen will: es: l4h.py

ps: Ändern Sie den Namen der Datei (von L4H auf alles, was Sie wollen, ist ein Beispiel)

3) Führen Sie cmd aus dem Ordner (auf dem Ordner mit der rechten + shift klicken und wählen Sie cmd hier starten) 4) schreiben in cmd:> python setup.py py2exe 5) in der dist-Ordner gibt es alle Dateien, die Sie benötigen 6) Sie zip kann und verteilen

Beantwortet am 31/01/2017 um 19:51
quelle vom benutzer

stimmen
1

PySimpleGUI wickelt tkinter und arbeitet auf Python 3 und 2.7. Sie können benutzerdefinierte GUIs machen, die alle die gleichen Widgets verwenden, die Sie in tkinter (Schieberegler, Kontrollkästchen, Optionsfelder, ...) zu finden. Der Code neigt dazu, sehr kompakt und gut lesbar zu sein.

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

Bild erstellt von gepostet PySimpleGUI Code

Wie in der erklärt PySimpleGUI Dokumentation , bauen die Exe - Datei Sie ausführen:

pyinstaller -WF MyGUIProgram.py

Beantwortet am 09/10/2018 um 12:30
quelle vom benutzer

stimmen
1

Sie brauchen nicht zu kompilieren Python für Mac / Windows / Linux. Es ist eine interpretierte Sprache, so dass Sie einfach das Python - Interpreter auf dem System Ihrer Wahl installiert haben müssen (es ist für alle drei Plattformen verfügbar).

Wie für eine GUI - Bibliothek , die Cross - Plattform, Python arbeitet Tk / Tcl Widget - Bibliothek funktioniert sehr gut, und ich glaube , ausreichend Cross - Plattform ist.

Tkinter ist die Python - Schnittstelle zu Tk / Tcl

Aus der Python-Projekt-Webseite:

Tkinter ist nicht das einzige GuiProgramming Toolkit für Python. Es ist jedoch die am häufigsten verwendete, und fast der einzige, der zwischen Unix, Mac und Windows tragbar ist

Beantwortet am 05/08/2008 um 23:40
quelle vom benutzer

stimmen
0

Sie können verwendet werden appJarfür die grundlegende GUI - Entwicklung.

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 beim Laufen

Siehe Dokumentation bei appJar Website .

Installation mit gemacht pip install appjarvon der Kommandozeile.

Beantwortet am 08/06/2017 um 10:21
quelle vom benutzer

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