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

22

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

PS D:\>.\test.py

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

PS D:\>python test.py

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

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

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

Ответы:

24

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

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

$env:PATHEXT += ";.py"

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

Zdan
источник
-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