2009-11-06 11 views
46

Gibt es eine Möglichkeit, ein Python-Skript in Windows XP auszuführen, ohne dass momentan eine Befehlsshell angezeigt wird? Ich muss oft WordPerfect (für die Arbeit) mit Python automatisieren, und selbst wenn mein Skript keine Ausgabe hat, erscheint eine leere Shell noch eine Sekunde, bevor ich sie verlasse. Gibt es einen Weg dies zu verhindern? Irgendeine Art von Ausgabeumleitung vielleicht?Python-Skript ausführen, ohne dass die Windows-Konsole angezeigt wird

Antwort

77

pythonw.exe wird das Skript ohne Eingabeaufforderung ausführen. Das Problem ist, dass der Python-Interpreter Python.exe mit dem Konsolen-Subsystem verbunden ist, um Konsolenausgaben zu erzeugen (da dies 90% der Fälle sind) - pythonw.exe ist stattdessen mit dem GUI-Subsystem verbunden, und Windows wird keine Konsole erstellen Ausgabefenster für es, es sei denn, es fragt nach einem.

This article diskutiert GUI-Programmierung mit Python und spielt auch auf pythonw.exe. Es wird auch hilfreich darauf hingewiesen, dass, wenn Ihre Python-Dateien mit .pyw anstelle von .py enden, das Standard-Windows-Installationsprogramm Verknüpfungen richtig einrichten und Ihr Python in pythonw.exe ausführen wird.

In Ihrem Fall ist es nicht wie ein Problem klingen, aber das Vertrauen auf pythonw.exe macht Ihre Anwendung Windows-spezifische - andere Lösungen gibt es diese auf erreichen, sagen wir, Mac OS X

+0

Gibt es eine Möglichkeit, im Python-Skript Wetter zu spezifizieren, um 'python.exe' oder' pythonw.exe' zu ​​verwenden? Zum Beispiel: def prog_a(): run_as_pythonw() blah blah vs. def prog_b(): run_as_python() blah blah. Ein Switch-to-Silent-Modus, wenn Sie so wollen. – p014k

+1

Es funktioniert nicht wie Sie erläutert, um pythonw.exe für .pyw zu verwenden. Können Sie bitte die Antwort aktualisieren? sein 2016 – YumYumYum

17

Wenn Sie Benennen Sie Ihre Dateien mit der Erweiterung ".pyw", dann werden sie von Windows mit dem Interpreter pythonw.exe ausgeführt. Dadurch wird die DOS-Konsole zum Ausführen des Skripts nicht geöffnet.

Verwandte Themen