Führen Sie Python-Skripte direkt in PowerShell aus


22

Ich verwende Windows PowerShell. Nehmen wir an, ich habe ein Skript namens test.py, das einige Dinge ausgibt. Wenn ich mache:

PS D:\>.\test.py

dann öffnet es ein CMD-Fenster, das einige Dinge druckt und dann schließt. Tatsächlich läuft der Python-Interpreter unter CMD. Wenn ich mache

PS D:\>python test.py

Es verhält sich so, wie ich es erwartet hätte, und die Ausgabe wird in PowerShell angezeigt.

Wie kann ich dafür sorgen, dass das Skript in PowerShell ausgeführt wird, wenn ich nur seinen Namen gebe?


Wenn Sie Ihre PATHEXTVariable mit der unten angegebenen Antwort von zdan aktualisiert haben und Python-Skripte in einem Verzeichnis ablegen, das von Ihrer PATHUmgebungsvariablen benannt wird, müssen Sie keinen vollständig qualifizierten (oder relativen) Pfad mehr angeben, um sie auszuführen. Dann verhalten sich Python-Skripte wie jedes andere installierte Programm, und Sie können sie in Pipelines mit anderen Programmen / Cmdlets ( z. B. get-clipboard | myscript.py ) und all diesen anderen Funktionen zusammenfügen. :)
TheDudeAbides

Antworten:


24

Bearbeiten Sie die Umgebungsvariable PATHEXT und fügen Sie die Erweiterung .py hinzu.

Fügen Sie einfach diese Zeile zu Ihrem PowerShell-Profil hinzu :

$env:PATHEXT += ";.py"

oder Sie können PATHEXT einfach global in den Systemeinstellungen bearbeiten (suchen Sie einfach im Startmenü nach "Umgebung" und wählen Sie die Option "Umgebungsvariablen für Ihr Konto bearbeiten").


-1

Möglicherweise ist mehr als eine Version von Python installiert, und die von IDLE verwendete Version ist neuer. Um zu sehen, welche Version von Python Sie haben, können Sie> python -V in eine Befehlszeile eingeben. Wenn diese Version geeignet erscheint, benötigen Sie möglicherweise den vollständigen Pfad zur Datei als zweiten Parameter. ZB> Python C: \ myfile.py.

Wenn Sie Python korrekt installiert haben, besteht immer die Möglichkeit, dass es mit Python ausgeführt wird, wenn Sie nur den Namen des Skripts eingeben. ZB> myfile.py

Ich finde immer, dass das Hinzufügen von C: \ Python27 zur% PATH% -Variable und .PY zur% PATHEXT% -Variable das Ausführen von Skripten erleichtert. In diesem Fall sollte nur> myfile funktionieren.

Nach dem Update bearbeiten:

Wenn Sie nur> python ohne Parameter eingeben, wird Python im interaktiven Modus geöffnet, der sich vom Stapel- oder Skriptmodus unterscheidet, für den Ihr Skript vorgesehen ist. Bei Ausführung mit Argumenten wird das erste Argument als Dateipfad verwendet und weitere Argumente an das Skript in der Liste sys.argv übergeben.


Warum kopieren Sie Ihre Antwort von irgendwoher und fügen sie ein? Sie haben sogar vergessen, die Formatierung richtig zu kopieren, und es gab kein "Update".
Slhck
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.