Ich besitze bereits Programmiererfahrung und möchte mich jetzt in Python einarbeiten.
Wenn ich ein Script in der Shell starte gibt es kein Problem, wenn ich jedoch mit Doppelklick aus dem Windows-Explorer starte, verschwindet die Ausgabe sofort wieder. Lt. Tutorial soll nach "input()" ein Stop erfolgen, tut es aber nicht.
Ich arbeite mit Windows 10 Home x64 und Python 3.5.0a2
Script mit Doppelklick starten
@bieler: Doch das tut `input()` schon — wenn es denn ausgeführt wird. Falls es aber davor beispielsweise zu einer Ausnahme kommt, so dass der Aufruf von `input()` nicht erreicht wird, kann es natürlich auch den Programmfluss nicht aufhalten. Darum ist das auch nicht dazu geeignet wofür das Tutorial, welches Du verwendest, es anscheinend vorschlägt. Und es wird, wenn es erreicht und ausgeführt wird, Benutzer nerven die Konsolenprogramme dort ausführen wo man sie ausführen sollte: in einer vorher geöffneten Konsole. Denn die müssen dann am Ende unnötigerweise immer noch mal die Eingabetaste drücken um wieder zur Shell zurückzukehren ohne dass das einen Sinn ergäbe.
Wie gesagt, ich bin neu bei Python und bin am testen und einarbeiten.
Ein einfaches Script, ok in der Praxis ohne Bedeutung
wird ohne irgendwelche Fehlemeldung, welche auch, sofort verlassen.
Ein einfaches Script, ok in der Praxis ohne Bedeutung
Code: Alles auswählen
print("Python lernen!")
input()
Hast du verschiedene Versionen von Python (z. B. 3.5 und 2.7) installiert!? Es kann sein, dass durch Doppelklick das Skript mit Python 2.7 gestartet wird. Das wäre bei mir die häufigste Fehlerursache.
@lpixewakb
Nein, habe es gerade nochmals überprüft.
@ sirius3
Nein, habe es gerade nochmals überprüft.
@ sirius3
Schon klar, ich bin wie gesagt in der ersten Einarbeitungsphase. Was muss ich denn tun, um Scripte über den Doppelklick zu starten um ohne die IDE zu arbeiten. Natürlich nicht bei einem solch einfachen Script.Konsolenprogramme werden in der Konsole gestartet.
Versuch bitte mal folgendes Programm bei Dir und dann ersetze die Zeilen mit #1 und #2 durch dein eigentliches Programm. Beachte bitte die Einrückung. Das Skript schreibt dir die Fehlermeldung in eine Textdatei error.log. Den Inhalt könntest Du dann bitte hier - bereinigt um personenbezogene Daten - hier posen. Danke!
[Codebox=python file=Unbenannt.py]import traceback
try:
print("Dein Quellcode") # 1
a = 1 / 0 # 2
except:
tb = traceback.format_exc()
with open("error.log", "w") as f:
f.write(tb)[/Codebox]
PS Ich verwende die erste Code-Option ("Code auswählen"), welche muss ich denn (noch mal) anwählen, um da ein korrektes Ergebnis zu erhalten.
[Codebox=python file=Unbenannt.py]import traceback
try:
print("Dein Quellcode") # 1
a = 1 / 0 # 2
except:
tb = traceback.format_exc()
with open("error.log", "w") as f:
f.write(tb)[/Codebox]
PS Ich verwende die erste Code-Option ("Code auswählen"), welche muss ich denn (noch mal) anwählen, um da ein korrektes Ergebnis zu erhalten.
@bieler: Ist das jetzt ein Kommunikationsproblem oder willst Du wirklich mit aller Gewalt Konsolenprogramme per Doppelklick starten? Konsolenprogramme sind dazu gedacht in einer Konsole gestartet zu werden. Man öffnet die Konsole, wechselt in das Verzeichnis mit dem Programm, solange es nicht in einem Verzeichnis liegt welches in der %PATH%-Umgebungsvariable enthalten ist, und dann startet man das Programm in der Konsole wie jedes andere Konsolenprogramm auch. Die Konsole ist vorher geöffnet, das Programm wird ausgeführt, und egal warum es zum Ende kommt, regulär oder wegen einer Ausnahme, bleibt die Konsole auch hinterher offen. Und man kann es erneut starten, zum Beispiel nachdem man einen eventuellen Fehler beseitigt hat, oder es weiterentwickelt hat.
Nein, sollte eigentlich nur ein harmloser Test sein. Mir war nicht klar, dass die Funktion "print()" nur in der Konsole läuft.willst Du wirklich mit aller Gewalt Konsolenprogramme per Doppelklick starten?
OK, werde mich mal weiter in die Einarbeitung stürzen und wahrscheinlich später noch paar dumme Fragen stellen. Meine bisherigen Programmiererfahrungen bezogen sich nicht auf Scriptsprachen, deshalb war mir das Handling mit einer Konsole nicht geläufig.
@bieler: Das hat nichts mit ”Scriptsprachen” zu tun, man kann mit Python auch GUI-Programme schreiben und Konsolenprogramme die in anderen Sprachen geschrieben wurden startet man auch direkt in der Konsole. Darum heissen sie ja Konsolenprogramme.
Auch bei GUI-Programmen, egal in welcher Sprache geschrieben, ist zumindest für Entwickler ein Start von der Konsole aus auch nicht unüblich, weil man da oft Ausgaben zur Fehlersuche macht, die man gerne sehen möchte. Einzig Windowsanwendungen erschweren das, weil das System dort stärker zwischen GUI- und Konsolenprogrammen unterscheidet und GUI-Programmen standardmässig erst einmal nicht die üblichen Standardein- und ausgaben zur Verfügung stellt.
`print()` schreibt auf die Standardausgabe des Prozesses. Das muss nicht zwangsläufig eine Konsole sein. Was mit diesen Daten passiert, entscheidet das Programm, welches den Prozess gestartet hat. Eine grafische IDE kann die Daten beispielsweise in einem Textfeld anzeigen.
Auch bei GUI-Programmen, egal in welcher Sprache geschrieben, ist zumindest für Entwickler ein Start von der Konsole aus auch nicht unüblich, weil man da oft Ausgaben zur Fehlersuche macht, die man gerne sehen möchte. Einzig Windowsanwendungen erschweren das, weil das System dort stärker zwischen GUI- und Konsolenprogrammen unterscheidet und GUI-Programmen standardmässig erst einmal nicht die üblichen Standardein- und ausgaben zur Verfügung stellt.
`print()` schreibt auf die Standardausgabe des Prozesses. Das muss nicht zwangsläufig eine Konsole sein. Was mit diesen Daten passiert, entscheidet das Programm, welches den Prozess gestartet hat. Eine grafische IDE kann die Daten beispielsweise in einem Textfeld anzeigen.