Запускайте скрипты Python в PowerShell напрямую


22

Я использую Windows PowerShell. Допустим, у меня есть скрипт, test.pyкоторый печатает несколько вещей. Если я сделаю:

PS D:\>.\test.py

затем он открывает окно CMD, которое печатает несколько вещей, а затем закрывается. Это на самом деле работает интерпретатор Python под CMD. Если я сделаю

PS D:\>python test.py

он работает так, как я ожидал, с выводом в PowerShell.

Как я могу сделать так, чтобы скрипт запускался в PowerShell, когда я просто дал его имя?


После того как вы обновили свою PATHEXTпеременную, используя принятый ниже ответ zdan, если вы поместите скрипты Python в каталог, названный вашей PATHпеременной среды, вам больше не потребуется указывать полный (или относительный) путь для их запуска. Тогда скрипты Python ведут себя как любая другая установленная программа, и вы можете объединять их вместе в конвейеры с другими программами / командлетами ( например get-clipboard | myscript.py ) и всем остальным. :)
TheDudeAbides

Ответы:


24

Отредактируйте переменную среды PATHEXT и добавьте расширение .py.

Просто добавьте эту строку в свой профиль PowerShell :

$env:PATHEXT += ";.py"

или вы можете просто изменить PATHEXT глобально в системных настройках (просто найдите в меню «Пуск» «среда» и выберите параметр «Изменить переменные среды для вашей учетной записи»).


-1

Возможно, у вас установлено более одной версии Python, а IDLE версии более новая. Чтобы увидеть, какая у вас версия Python, вы можете набрать> python -V в командной строке. Если эта версия выглядит подходящей, то вам может понадобиться полный путь к файлу в качестве второго параметра. Например, Python C: \ myfile.py.

Если вы правильно установили Python, всегда есть вероятность, что просто набрав имя скрипта, вы запустите его с python. Например, myfile.py

Я всегда нахожу, что добавление C: \ Python27 к переменной% PATH% и .PY к переменной% PATHEXT% облегчает запуск сценариев. В этом случае просто> myfile должен работать.

Изменить после обновления:

Ввод просто> python без параметров открывает python в «интерактивном режиме», который отличается от режима пакетной обработки или сценариев, для которого предназначен ваш сценарий. При выполнении с аргументами первый аргумент принимается в качестве пути к файлу, а дальнейшие аргументы передаются сценарию в списке sys.argv.


Почему вы копируете и вставляете свой ответ откуда-то? Вы даже забыли правильно скопировать форматирование, и там не было «Обновлений».
slhck
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.