Uruchamiaj skrypty Python bezpośrednio w PowerShell

22

Używam Windows PowerShell. Powiedzmy, że mam skrypt o nazwie, test.pyktóry drukuje kilka rzeczy. Jeśli zrobię:

PS D:\>.\test.py

następnie otwiera okno CMD, które drukuje kilka rzeczy, a następnie zamyka. W rzeczywistości działa interpreter Pythona pod CMD. Jeśli zrobię

PS D:\>python test.py

działa tak, jak się tego spodziewałem, a dane wyjściowe pojawiają się w PowerShell.

Jak mogę to zrobić, aby skrypt działał w PowerShell, gdy tylko podam jego nazwę?

jcrawfordor
źródło
Po zaktualizowaniu PATHEXTzmiennej przy użyciu poniższej odpowiedzi zdan, jeśli umieścisz skrypty Pythona w katalogu nazwanym przez PATHzmienną środowiskową, nie będzie potrzeby podawania w pełni kwalifikowanej (lub względnej) ścieżki do ich uruchomienia. Następnie skrypty Pythona zachowują się jak każdy inny zainstalowany program i możesz łączyć je w potokach z innymi programami / cmdletami ( np. get-clipboard | myscript.py ) I całą inną dobrocią. :)
TheDudeAbides

Odpowiedzi:

24

Zmodyfikuj zmienną środowiskową PATHEXT i dodaj rozszerzenie .py.

Po prostu dodaj tę linię do swojego profilu PowerShell :

$env:PATHEXT += ";.py"

lub możesz po prostu edytować PATHEXT globalnie w ustawieniach systemu (po prostu wyszukaj w menu Start „środowisko” i wybierz opcję „Edytuj zmienne środowiskowe dla swojego konta”).

zdan
źródło
-1

Być może masz zainstalowaną więcej niż jedną wersję Pythona, a wersja, której używa IDLE, jest nowsza. Aby zobaczyć, jaką masz wersję Pythona, możesz wpisać> python -V w wierszu polecenia. Jeśli ta wersja wygląda na odpowiednią, być może potrzebna jest pełna ścieżka do pliku jako drugiego parametru. Np.> Python C: \ mój_plik.py.

Jeśli poprawnie zainstalowałeś Python, zawsze istnieje szansa, że ​​po prostu wpisanie nazwy skryptu spowoduje uruchomienie go z pythonem. Np.> Mój_plik.py

Zawsze znajduję, że dodanie C: \ Python27 do zmiennej% PATH% i .PY do zmiennej% PATHEXT% ułatwia uruchamianie skryptów. W takim przypadku po prostu> mój plik powinien działać.

Edytuj po aktualizacji:

Wpisanie tylko> python bez parametrów otwiera python w „trybie interaktywnym”, który różni się od trybu wsadowego lub skryptowego, dla którego skrypt jest przeznaczony. W przypadku wykonania z argumentami pierwszy argument jest brany jako ścieżka do pliku, a kolejne argumenty są przekazywane do skryptu na liście sys.argv.

Supri Adi
źródło
Dlaczego gdzieś kopiujesz i wklejasz swoją odpowiedź? Zapomniałeś nawet poprawnie skopiować formatowanie i nie było tam „Aktualizacji”.
slhck