Python Compiler

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Reloaded
User
Beiträge: 11
Registriert: Mittwoch 15. November 2017, 19:10

Hey,

Der Titel verrät eigendlich alles.

Gibt es einen Python Compiler?, weil immer wenn ich mein Script/Programm zu ende geschrieben habe und es abgespeichert habe kommt am Ende ".py" raus und ich kann es nicht Starten also gibt es einen Compiler der .Py zu .Exe macht ? .

Ich nutzte den Idle Editor und die Version 3.5.0.

Gruß geht raus.
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Moin,

Python wird normalerweise nicht in eine ausführbare Datei kompiliert, sondern direkt mit dem Interpreter ausgeführt, mit `python dateiname.py` auf der Kommandozeile. Man kann meist auch seinen bevorzugten Dateimanager so einstellen, dass er Python-Dateien mit einem Doppelklick startet, aber das ist oft problematisch, weil man dann Fehlermeldungen nicht sehen kann, wenn das Programm mit einer Exception beendet wird und das Konsolenfenster automatisch geschlossen wird.


Python wird übrigens standardmäßig kompiliert, bevor es ausgeführt wird: Der Python-Compiler kompiliert den Code in Bytecode, der dann vom Interpreter ausgeführt wird.
Reloaded
User
Beiträge: 11
Registriert: Mittwoch 15. November 2017, 19:10

narpfel hat geschrieben:Moin,

Python wird normalerweise nicht in eine ausführbare Datei kompiliert, sondern direkt mit dem Interpreter ausgeführt, mit `python dateiname.py` auf der Kommandozeile. Man kann meist auch seinen bevorzugten Dateimanager so einstellen, dass er Python-Dateien mit einem Doppelklick startet, aber das ist oft problematisch, weil man dann Fehlermeldungen nicht sehen kann, wenn das Programm mit einer Exception beendet wird und das Konsolenfenster automatisch geschlossen wird.


Python wird übrigens standardmäßig kompiliert, bevor es ausgeführt wird: Der Python-Compiler kompiliert den Code in Bytecode, der dann vom Interpreter ausgeführt wird.
Hey,

Das ist mein Script/Programm https://paste.ee/p/gWyNw

Und das Passiert wenn ich die .py Datei starte, https://postimg.org/image/l5fwx92ep/, dann klicke ich auf OK dann öffnet es sich wieder :/
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Wie gesagt: Normalerweise macht man das nicht. Außerdem sieht es nicht richtig aus, ein Python-3.5-Programm mit Python 2.7 ausführen zu wollen...
Reloaded
User
Beiträge: 11
Registriert: Mittwoch 15. November 2017, 19:10

narpfel hat geschrieben:Wie gesagt: Normalerweise macht man das nicht. Außerdem sieht es nicht richtig aus, ein Python-3.5-Programm mit Python 2.7 ausführen zu wollen...
Das habe ich übersehen, danke :)
Aber jetzt beendet sich das Programm Programm nachdem in das Passwort eingegeben habe, gibt es wie bei C++ ein "Stopp" Befehl ? .
Also beser gesagt, ein befehl das die CMD Box pausiert :/ ?
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

Wie gesagt: Normalerweise startet man das Programm genau aus diesem Grund aus der Kommandozeile, damit sich die eben nicht sofort schließt, wenn das Programm beendet ist.
Reloaded
User
Beiträge: 11
Registriert: Mittwoch 15. November 2017, 19:10

narpfel hat geschrieben:Wie gesagt: Normalerweise startet man das Programm genau aus diesem Grund aus der Kommandozeile, damit sich die eben nicht sofort schließt, wenn das Programm beendet ist.
Naja schade, trotzdem Danke ! :p
Benutzeravatar
noisefloor
User
Beiträge: 3843
Registriert: Mittwoch 17. Oktober 2007, 21:40
Wohnort: WW
Kontaktdaten:

Hallo,

es gibt schon eine Reihe von Programmen, die unter Windows aus Python Skripten ausführbare exe-Dateien machen.
Das macht man aber i.d.R. nur, wenn man sein Skript auf Systeme verteilen will, von _kein_ Python installiert ist, weil man dann den Python-Interpreter und ggf. benötigte Module mit in die exe packt (wodurch diese entsprechend groß wird).

Da würde dein "Problem" aber auch nicht lösen, weil: wenn ein Skript zu Ende ist, ist es zu Ende. Egal, ob du die .py-Datei direkt ausführst oder als .exe
Also beser gesagt, ein befehl das die CMD Box pausiert :/
Ein Würg-Around ist, dass du am Ende des Skripts noch ein `input` einbaust - dann wartet das Programm auf eine Eingabe. Funktioniert, ist stilistisch aber nicht wirklich wertvoll...

Gruß, noisefloor
narpfel
User
Beiträge: 643
Registriert: Freitag 20. Oktober 2017, 16:10

@Reloaded:
Ein Würg-Around ist, dass du am Ende des Skripts noch ein `input` einbaust - dann wartet das Programm auf eine Eingabe. Funktioniert, ist stilistisch aber nicht wirklich wertvoll...
Und hat auch das Problem, dass es nicht funktioniert, wenn eine Exception auftritt.
sebastian0202
User
Beiträge: 168
Registriert: Montag 9. Mai 2016, 09:14
Wohnort: Berlin

Hallo,



für solche Dinge habe ich mir eine ausführbare Bat-Datei geschrieben.

Code: Alles auswählen

D:\Python35-32\python.exe D:\PythonProgramms\Zeiterfassung.py
pause
Damit starte ich dann mein Python Programm und sehe trotzdem aufkommende Fehler.
Vielleicht hilft dir das ja?
Trefferzone
User
Beiträge: 1
Registriert: Mittwoch 12. September 2018, 05:45

Hi

Ich weiß, dass dieser Thema zwar schon ein wenig älter ist, aber ...

Statt einer Batch-Datei mit einem Pause-Befehl lässt sich das auch in deinem Programm einbinden.

Zeiterfassung.py

Code: Alles auswählen

import os

""" Dein Programmcode """

os.system('PAUSE')

Mögliche Fehlerquellen durch Benutzereingaben sollten generell durch try-except Abgefangen werden, so dass es für den normalen Nutzer möglichst gar nicht erst zu Fehlermeldungen des Interpreters kommt.
Benutzeravatar
__blackjack__
User
Beiträge: 13004
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@Trefferzone: Man sollte eben nicht generell alles abfangen, sondern nur das was man auch erwartet und sinnvoll behandeln kann. Womit dann doch wieder bei unerwarteten Ausnahmen, also in der Regel Fehlern im Programm, das Fenster geschlossen wird, ohne das auf eine Eingabe gewartet wird. Zudem ist so ein Programm nun abhängig davon, das es auf einem System läuft wo es ein Programm oder Shellbefehl mit dem Namen 'PAUSE' gibt.

Unterm Strich bleibt es dabei das man Konsolenprogramme am besten aus einer Konsole heraus startet. Denn dafür sind sie gedacht. Wenn man das nicht möchte, schreibt man besser eine GUI-Anwendung.
“Most people find the concept of programming obvious, but the doing impossible.” — Alan J. Perlis
Antworten