Seite 1 von 1
Wie startet ihr eure Skripte und Programme unter Windows?
Verfasst: Samstag 28. Februar 2009, 15:32
von bremer
Erstellt ihr eine .exe? Ruft ihr die Python-Skripts in der Konsole ab oder speichert ihr alles als Module und ruft es dann direkt über Python auf?
Verfasst: Samstag 28. Februar 2009, 15:43
von snafu
Kommt ja wohl drauf an, worum es geht. Für meine eigenen Skripte brauch ich keine EXE. Und ansonsten halt:
Brauche ich etwas zur Weiterverwendung in Python? - Modul in Python aufrufen
Habe ich mir ein paar Optionen für die Kommandozeile gemacht - Kommandozeile
Irgendwie logisch, oder? Ich finde die Frage ehrlich gesagt auch etwas banal.
Oder noch etwas anders gesagt: Oft habe ich eine main(), die noch andere Funktionen nach einem bestimmten Ablauf aufruft und die eigentlich für den direkten Aufruf von der Kommandozeile ausgelegt ist. Wenn ich nur Teile nutzen will, dann gehe ich in den Interpreter und rufe die passende Funktion auf.
Verfasst: Samstag 28. Februar 2009, 15:46
von Nocta
Ähm, du weißt schon, dass Python interpretiert werden muss? Und man somit immer den Pythoninterpreter aufrufen muss (ob über Konsole, IDLE, oder Doppelklick), um das Script auszuführen?
Ist dann letztendlich egal, wie und wo man da was aufruft, im Endeffekt ist es das selbe.
Verfasst: Samstag 28. Februar 2009, 16:14
von bremer
In der Konsole muss ich erst ins Verzeichnis von Python wechseln und dann mühselig den Pfad zur Datei mit angeben. Das ist mir halt zu langsam.
Verfasst: Samstag 28. Februar 2009, 16:15
von Hyperion
bremer hat geschrieben:In der Konsole muss ich erst ins Verzeichnis von Python wechseln und dann mühselig den Pfad zur Datei mit angeben. Das ist mir halt zu langsam.
Na dann würde ich mal die python.exe in den PATH eintragen

dann kannste das ein wenig schneller realisieren!
EDIT: [wiki]FAQ#WieStarteIchSkripte[/wiki]
Verfasst: Samstag 28. Februar 2009, 16:16
von DasIch
Setz Python in die PATH Variable dann ist das nicht notwendig.
Verfasst: Samstag 28. Februar 2009, 17:03
von snafu
Irgendwo hier wurde sogar mal beschrieben, wie man Skripte ohne das ``python`` davor ausführen kann. Also quasi wie bei ausführbaren Dateien unter Linux mittels Shebang.
Verfasst: Samstag 28. Februar 2009, 18:08
von HerrHagen
Unter Windows hast du deine .py Dateien normalerweise mit dem Python-Interpreter verknüpft. Dies geschieht durch die Windows Standard-Installation automatisch. Danach kannst du einfach wie bei jeder exe doppelt auch die Datei klicken. Durch die shell hangeln braucht man also für das einfache Starten von Python-Programmen nicht. Shebang erst recht nicht (höchtens für irgendwelche Webserver-Sachen). Ich versteh nicht ganz wo das Problem ist.
Wenn du in die Umgebungsvariable PATHTEXT (Systemvariablen) .py mit einträgst kannst du über die Windows Shell Python Programme auch ohne die Executable davor (python.exe) und ohne Erweiterung, starten - genau wie normale exe'n. Das war das was snafu meinte.
MFG HerrHagen
Verfasst: Samstag 28. Februar 2009, 20:11
von nemomuk
Oft ist es aber praktisch das ganze in der Shell zu machen, da man dann die Fehlermeldungen sieht.
Verfasst: Samstag 28. Februar 2009, 20:44
von bremer
HerrHagen hat geschrieben:Unter Windows hast du deine .py Dateien normalerweise mit dem Python-Interpreter verknüpft. Dies geschieht durch die Windows Standard-Installation automatisch. Danach kannst du einfach wie bei jeder exe doppelt auch die Datei klicken. Durch die shell hangeln braucht man also für das einfache Starten von Python-Programmen nicht. Shebang erst recht nicht (höchtens für irgendwelche Webserver-Sachen). Ich versteh nicht ganz wo das Problem ist.
Wenn du in die Umgebungsvariable PATHTEXT (Systemvariablen) .py mit einträgst kannst du über die Windows Shell Python Programme auch ohne die Executable davor (python.exe) und ohne Erweiterung, starten - genau wie normale exe'n. Das war das was snafu meinte.
MFG HerrHagen
Automatisch wurde bisher nichts eingestellt.
Ich habe Path und Pathext soweit geändert. Nur das Starten per Doppelklick funktioniert noch nicht. Die Konsolenfenster werden einfach sofort wieder geschlossen.
Verfasst: Samstag 28. Februar 2009, 23:19
von Sr4l
Dann gibt es einen Fehler?!?
Oder dein Programm ist so schnell fertig das du es nicht sehen kannst.
Mach mal am ende des Scripts ein `raw_input()` dann bleibt das Fenster offen bis du die Enter drückst, außer es gibt einen Fehler, dann geht das Programm auch einfach zu.
Verfasst: Samstag 28. Februar 2009, 23:33
von DasIch
Sr4l hat geschrieben:Mach mal am ende des Scripts ein `raw_input()` dann bleibt das Fenster offen bis du die Enter drückst, außer es gibt einen Fehler, dann geht das Programm auch einfach zu.
Deswegen macht man dass nicht und verwendet atexit wie Leonidas
hier zeigt.
Verfasst: Sonntag 1. März 2009, 03:54
von Leonidas
Die richtige Lösung wäre ja Programme in der Konsole zu starten, dann hat man das Problem gar nicht erst und muss sich keine solchen Hacks ausdenken.

Verfasst: Sonntag 1. März 2009, 17:29
von HerrHagen
Um dieses Problem zu lösen habe ich eine zusätzliche verknüpfte Aktion (Öffnen -i) für .py Dateien registriert (Ordneroptionen-Dateitypen-Erweitert):
Du kannst das dann im rechte Maustaste-Menü auswählen. Damit verbleibt der Python-Interpreter nach Beendigung deines Programms im interaktiven Modus - auch bei Fehlern.
MFG HerrHagen
Verfasst: Dienstag 3. März 2009, 13:31
von INFACT
Ich starte meine immer im CP auch wenn ich windoof benutze.
Hab halt noch IDLE

Batch erstellen
Verfasst: Mittwoch 22. Juli 2009, 10:44
von nilshero
Auch wenn diese Antwort etwas spät dran ist:
Du kannst Dir auch eine Batch-Datei erstellen, das ist eine Datei mit der Endung
bat. Exemplarischer Inhalt, wenn Du z.B. etwas mit Textdateien machen willst:
Code: Alles auswählen
@echo off
pfad\zur\python.exe pfad\zum\pythonscript.py %1
pause
auf so eine Batch ziehst Du dann deine Textdatei, mit der etwas gemacht werden soll. Der Pfad dieser Textdatei wird anstelle des
%1 eingesetzt und ist im Pythonscript (
pfad\zum\pythonscript.py) als sys.argv[1] verfügbar (nicht vergessen, sys zu importieren).
Die erste und dritte Zeile sind optional, die erste schaltet das DOS-Geschnatter ab, die dritte sorgt dafür, daß das DOS-Fenster nach Ende der Ausführung des Scriptes (Zeile zwei) offen bleibt und sich erst nach dem Drücken einer Taste schließt. Das ist zum Beispiel gut, um Fehlermeldungen mitzukriegen.
Auf solche Batch-Dateien kannst Du auch Verknüpfungen erstellen, auch auf diese dann einfach die Text- oder was-auch-immer-Datei draggen.
Natürlich ist auch so etwas wie...
... möglich, auf so eine Datei kannst Du dann das Python-Script ziehen, das Du ausführen willst. Das kann aber auch (unter XP) bequemer bewerkstelligt werden, wenn Du *.py-Dateien in den Ordner-Einstellungen, Registerkarte
Dateitypen bearbeitest. das ist aber etwas komplizierter.
Standardmäßig werden Python-Dateien übrigens ausgeführt - was Du ja willst - wenn man Sie doppelklickt. Wenn das aus irgendwelchen Gründen nicht funktioniert, rechtsklickst Du eine Python-Datei und wählst
öffnen mit..., und suchst dann die python.exe im Python-Installationsverzeichnis. Häkchen
Dateityp immer mit diesem Programm öffnen aktivieren.
Gruß, Nils