Frage

Python funktioniert auf mehreren Plattformen und kann für Desktop- und Webanwendungen verwendet werden. Daher komme ich zu dem Schluss, dass es eine Möglichkeit gibt, es in eine ausführbare Datei für Mac, Windows und Linux zu kompilieren.

Das Problem besteht darin, dass ich keine Ahnung habe, wo ich anfangen soll oder wie ich damit eine GUI schreiben soll. Kann mir bitte jemand etwas Licht ins Dunkel bringen und mich in die richtige Richtung weisen?

War es hilfreich?

Lösung

Zuerst benötigen Sie eine GUI-Bibliothek mit Python-Bindungen und dann (falls gewünscht) ein Programm, das Ihre Python-Skripte in eigenständige ausführbare Dateien umwandelt.

Plattformübergreifende GUI-Bibliotheken mit Python-Anbindungen (Windows, Linux, Mac)

Natürlich gibt es viele, aber die beliebtesten, die ich in freier Wildbahn gesehen habe, sind:

  • Tkinter - bezogen auf Tk GUI-Toolkit (De-facto-Standard-GUI-Bibliothek für Python, kostenlos für kommerzielle Projekte)
  • WxPython - bezogen auf WxWidgets (beliebt, kostenlos für kommerzielle Projekte)
  • Qt Verwendung der PyQt-Bindungen oder Qt für Python.Ersteres ist für kommerzielle Projekte nicht kostenlos.Letzteres ist weniger ausgereift, kann aber kostenlos genutzt werden.

Die vollständige Liste finden Sie unter http://wiki.python.org/moin/GuiProgramming

Einzelne ausführbare Datei (alle Plattformen)

Einzelne ausführbare Datei (Windows)

  • py2exe - war früher am beliebtesten

Einzelne ausführbare Datei (Linux)

  • Einfrieren – Funktioniert genauso wie py2exe, zielt jedoch auf die Linux-Plattform ab

Einzelne ausführbare Datei (Mac)

  • py2app - Funktioniert wiederum wie py2exe, zielt jedoch auf Mac OS ab

Andere Tipps

Ein anderes System (in der akzeptierten Antwort noch nicht erwähnt) ist PyInstaller, das für ein PyQt-Projekt von mir funktionierte, während py2exe dies nicht tat.Ich fand es einfacher zu verwenden.

http://www.pyinstaller.org/

Pyinstaller basiert auf Gordon McMillans Python Installer.Was nicht mehr verfügbar ist.

Ein alternatives Tool zu py2exe ist bbfreeze das ausführbare Dateien für Windows und Linux generiert.Es ist neuer als py2exe und kommt recht gut mit Eiern zurecht.Ich habe festgestellt, dass es ohne Konfiguration für eine Vielzahl von Anwendungen auf magische Weise besser funktioniert.

Es gibt auch PyGTK, was im Grunde ein Python-Wrapper für das Gnome Toolkit ist.Ich fand es einfacher, mich damit auseinanderzusetzen als Tkinter, da ich vorher so gut wie keine Kenntnisse in der GUI-Programmierung hatte.Es funktioniert ziemlich gut und hat einige gute Tutorials.Leider gibt es noch kein Installationsprogramm für Python 2.6 für Windows und wird es möglicherweise auch in Zukunft nicht geben.

Da Python mittlerweile standardmäßig auf fast jedem Nicht-Windows-Betriebssystem installiert ist, müssen Sie nur noch sicherstellen, dass alle nicht standardmäßigen Bibliotheken, die Sie verwenden, installiert sind.

Allerdings ist es möglich, ausführbare Dateien zu erstellen, die den Python-Interpreter und alle von Ihnen verwendeten Bibliotheken enthalten.Allerdings wird dadurch wahrscheinlich eine große ausführbare Datei erstellt.

MacOS X bietet in der Xcode-IDE sogar Unterstützung für die Erstellung vollständig eigenständiger GUI-Apps.Diese können von jedem Benutzer ausgeführt werden, der OS X ausführt.

Für die GUI selbst:

PyQT ist so ziemlich die Referenz.

Eine andere Möglichkeit, eine schnelle Benutzeroberfläche zu entwickeln, besteht darin, eine Web -App zu schreiben, sie lokal auszuführen und die App im Browser anzuzeigen.

Wenn Sie sich für die von Lubos Hasko vorgeschlagene Tkinter -Option entscheiden, möchten Sie möglicherweise versuchen, Ihre App ohne Python auf Windows -Umgebung auszuführen.

Ich bin mir nicht sicher, ob dies der beste Weg ist, aber wenn ich Ruby-GUI-Apps (nicht Python, aber mit dem gleichen „Problem“ bei EXE-Dateien) unter Windows bereitstelle, schreibe ich einfach eine kurzer Launcher in C#, der mein Hauptskript aufruft.Es wird zu einer ausführbaren Datei kompiliert, und ich habe dann eine ausführbare Anwendungsdatei.

# 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 beispielsweise py2exe verwenden, um alle zum Ausführen der App erforderlichen Dateien in einen Ordner zu bringen, auch wenn der Benutzer kein Python auf seinem PC hat (ich spreche von Windows ...Für das Apple-Betriebssystem ist meiner Meinung nach keine ausführbare Datei erforderlich, da es Python enthält, ohne dass es installiert werden muss.

Erstellen Sie diese Datei

1) Erstellen Sie eine setup.py

mit diesem Code:

from distutils.core import setup
import py2exe

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

Speichern Sie es in einem Ordner

2) Setzen Sie Ihr Programm in denselben Ordner von Setup.py ein in diesem Ordner das Programm ein, das es verteilbar macht:es:l4h.py

PS:Ändern Sie den Namen der Datei (von l4h in einen beliebigen Namen, das ist ein Beispiel).

3) Führen Sie cmd aus diesem Ordner aus (klicken Sie mit der rechten Maustaste + Umschalttaste auf den Ordner und wählen Sie „cmd hier starten“).
4) Schreiben Sie in cmd:>python setup.py py2exe
5) Im dist-Ordner befinden sich alle benötigten Dateien
6) Sie können es komprimieren und verteilen

Pyinstaller

Installieren Sie es über cmd

**

pip installer pyinstaller

**

Führen Sie es über den Befehl cmd aus dem Ordner aus, in dem sich die Datei befindet

**

pyinstaller-Datei.py

**

PySimpleGUI umschließt tkinter und funktioniert auf Python 3 und 2.7.Es läuft auch auf Qt, WxPython und in einem Webbrowser und verwendet für alle Plattformen den gleichen Quellcode.

Sie können benutzerdefinierte GUIs erstellen, die dieselben Widgets verwenden, die Sie in tkinter finden (Schieberegler, Kontrollkästchen, Optionsfelder usw.).Der Code ist in der Regel sehr kompakt und 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()

Image created from posted PySimpleGUI code

Wie im erklärt PySimpleGUI-Dokumentation, Zu Erstellen Sie die EXE-Datei Sie laufen:

pyinstaller -wF MyGUIProgram.py

Das ist nicht nötig kompilieren Python für Mac/Windows/Linux.Da es sich um eine interpretierte Sprache handelt, muss lediglich der Python-Interpreter auf dem System Ihrer Wahl installiert sein (er ist für alle drei Plattformen verfügbar).

Eine GUI-Bibliothek, die plattformübergreifend funktioniert, ist die von Python Tk/Tcl Die Widget-Bibliothek funktioniert sehr gut und ist meiner Meinung nach ausreichend plattformübergreifend.

Tkinter ist die Python-Schnittstelle zu Tk/Tcl

Von der Python-Projekt-Webseite:

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

Sie können verwenden appJar fü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 when running

Siehe Dokumentation unter appJar-Site.

Die Installation erfolgt mit pip install appjar über die Befehlszeile.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top