Ist es normal das ich Python Programme nicht einfach öffnen kann nach dem Speichern?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Unter der Annahme, dass du mit Windows OS arbeitest:

Lege Python als Startprogramm für py-Dateien an. Klicke dazu auf eine beliebige Datei mit der Dateiendung .py, wähle im Kontextmenü Eigenschaften aus und schau in den Allgemein-Tab. Dort findest du die Option, das Startprogramm festzulegen (Öffnen mit). Die python.exe befindet sich im Python-Installationsverzeichnis.

Folgend sollte sich nach Doppelklick auf py-Dateien die Konsole öffnen und die Ausführung starten. Wenn ich dazu nur einmal das Getting-Started-Skript aus der guizero-Dokumentation nehme, klappt das wunderbar. Neben dem Konsolenfenster öffnet sich auch ein graues (leeres) Fenster mit dem Fenstertitel "Hello world".

Statt die python.exe zu verknüpfen, könntest du auch die pythonw.exe (im selben Verzeichnis) wählen. Das hätte zur Folge, dass kein extra Konsolenfenster geöffnet wird, allerdings auch die Standard-IO-Streams (stdin, stdout, stderr) nicht mehr eingesehen werden können.

Ansonsten könntest du deine Skripte auch von der Konsole aus starten.

"c:\path\to\python.exe" "c:\path\to\script.py"

Die erste Pfadangabe kannst du dir sparen, wenn du das Python-Installationsverzeichnis in deiner PATH-Umgebungsvariable angegeben hast.

python "c:\path\to\script.py"

Oder du legst dir ein Batchskript (Endung .bat) an, welches bei Doppelklick die Ausführung startet:

python "c:\path\to\script.py"
pause

NicoSaaS 
Fragesteller
 18.11.2021, 01:14

Vielen herzlichen Dank ^^ aber wenn ich mein Programm jetzt noch an nen freund senden wollen würde müsste ich es ja auch noch irgendwie mit exportieren oder?

0
regex9  18.11.2021, 01:47
@NicoSaaS

Dein Freund bräuchte einen Python-Interpreter auf seinem Rechner, um das Skript ausführen zu können. Entweder also, er installiert sich wie du Python oder aber du erstellst eine Executable mit einem Tool wie py2exe oder pyinstaller, welches dir dein Skript mitsamt Interpreter zusammenpackt.

Ich denke, mit py2exe sollte es nicht schwer fallen. Du kannst es via pip installeren. Prüfe erst in der Konsole, ob pip bekannt ist:

pip --version

Wenn du eine Fehlermeldung bekommst, solltest du den Pfad zum Scripts-Ordner (aus dem Python-Installationsverzeichnis: C:\...\Python\Scripts) in deiner PATH-Umgebungsvariable eintragen und danach die Konsole nochmal neustarten.

Mit dem install-Befehl kannst du py2exe installieren.

pip install py2exe

Danach kannst du der offiziellen Anleitung folgen (erweiterte Optionen sind hier gelistet) oder diesem Tutorial.

Sollte guizero nicht automatisch in die EXE integriert werden, musst du sie wohl noch explizit in der setup.py angeben.

# ...
options = {
  "py2exe": {
    "includes": [ "library name ..." ]
  }
}
setup(windows=['script.py'], options = options)
1

Man kann Python-Programme auch in EXE-Dateien kompilieren. Diese sind dann selbstständig ohne Python lauffähig. Das geht so:

Zuerst muss sichergestellt sein das Python in der PATH Umgebungsvariable eingetragen ist. Dazu startet man die Eingabeaufforderung als Administrator. Dann gibt man dort folgenden Befehl ein und Enter drücken:

  • python3

Dann muss dort die Versionsnummer erscheinen. Falls die Meldung "Befehl nicht gefunden" erscheint, muss man Python zur PATH Umgebungsvariable hinzufügen. Das geht so: https://technoguru.istocks.club/hinzufuegen-von-python-zur-windows-path-variablen/2020-10-14/#:~:text=Um%20Python%20zum%20PATH%20in,Registerkarte%20Erweitert%20und%20dann%20Umgebungsvariablen%20.

Wenn man das abgeschlossen hat, gibt man in der Eingabeaufforderung folgenden Befehl ein:

  • pip3 install pyinstaller

Das installiert die benötigten Komponenten.

Um ein Python-Programm in eine EXE-Datei zu kompilieren, erstellt man sich zuerst einen leeren Ordner. Als Ordnername kann man z.B. Python-Projekte nehmen. Dort speichert man dann das Python-Programm ab. Jetzt geht man in diesen Ordner und ruft von dort die Eingabeaufforderung auf. Als Administrator ist nicht erforderlich. Dann gibt man folgenden Befehl ein und drückt Enter:

  • pyinstaller --onefile --windowed programmname.py

Jetzt wird der Kompiliervorgang gestartet. Wenn das abgeschlossen ist, findet man im Ordner Python-Projekte 3 weitere Ordner: Einmal build dist und __pycache__ Im Ordner dist findet man dann die programmname.exe

Falls man das Programm weitergeben möchte, kann man das mit dem Tool Inno Setup https://jrsoftware.org/isinfo.php in ein Installationspaket (setup.exe) verpacken. Der Nutzer kann sich das dann installieren. Es wird dabei dann auch ein Startmenüeintrag und ein Deinstallationseintrag in der Systemsteuerung erstellt.