Seite 1 von 1

Python Compiler

Verfasst: Donnerstag 16. November 2017, 19:23
von Reloaded
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.

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 19:38
von narpfel
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.

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 19:54
von Reloaded
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 :/

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 19:59
von narpfel
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...

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 20:04
von Reloaded
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 :/ ?

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 20:10
von narpfel
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.

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 20:12
von Reloaded
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

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 20:36
von noisefloor
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

Re: Python Compiler

Verfasst: Donnerstag 16. November 2017, 20:56
von narpfel
@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.

Re: Python Compiler

Verfasst: Freitag 17. November 2017, 11:14
von sebastian0202
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?

Re: Python Compiler

Verfasst: Mittwoch 12. September 2018, 05:59
von Trefferzone
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.

Re: Python Compiler

Verfasst: Mittwoch 12. September 2018, 11:39
von __blackjack__
@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.