Wie startet ihr eure Skripte und Programme unter Windows?

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
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

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?
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
Zuletzt geändert von snafu am Samstag 28. Februar 2009, 15:47, insgesamt 1-mal geändert.
Nocta
User
Beiträge: 290
Registriert: Freitag 22. Juni 2007, 14:13

Ä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.
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

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.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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]
Zuletzt geändert von Hyperion am Samstag 28. Februar 2009, 16:16, insgesamt 1-mal geändert.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Setz Python in die PATH Variable dann ist das nicht notwendig.
Benutzeravatar
snafu
User
Beiträge: 6731
Registriert: Donnerstag 21. Februar 2008, 17:31
Wohnort: Gelsenkirchen

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.
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

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
nemomuk
User
Beiträge: 862
Registriert: Dienstag 6. November 2007, 21:49

Oft ist es aber praktisch das ganze in der Shell zu machen, da man dann die Fehlermeldungen sieht.
bremer
User
Beiträge: 109
Registriert: Sonntag 25. Mai 2008, 00:13

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.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

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.
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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. :)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
HerrHagen
User
Beiträge: 430
Registriert: Freitag 6. Juni 2008, 19:07

Um dieses Problem zu lösen habe ich eine zusätzliche verknüpfte Aktion (Öffnen -i) für .py Dateien registriert (Ordneroptionen-Dateitypen-Erweitert):

Code: Alles auswählen

C:\Python25\python.exe -i %1
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
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Ich starte meine immer im CP auch wenn ich windoof benutze.
Hab halt noch IDLE :oops: :roll:
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
nilshero
User
Beiträge: 10
Registriert: Mittwoch 30. Januar 2008, 12:22
Wohnort: Worms
Kontaktdaten:

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...

Code: Alles auswählen

@echo off
pfad\zur\python.exe %1
pause
... 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
"Es gibt keine Lösung, weil es kein Problem gibt"
(Marcel Duchamp)
Antworten