Запустіть сценарії 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% полегшує запуск сценаріїв. У цьому випадку просто> мій файл повинен працювати.

Редагувати після оновлення:

Введення просто> python без параметрів відкриває python у "інтерактивному режимі", який відрізняється від пакетного чи сценаріального режиму, для якого призначений ваш сценарій. Якщо виконується аргументами, перший аргумент приймається як шлях до файлу, а подальші аргументи передаються скрипту у списку sys.argv.


Чому ви копіюєте і вставляєте свою відповідь звідкись? Ви навіть забули правильно скопіювати форматування, і там не було "Оновлення".
slhck
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.