Запустить скрипт Python в Windows 10 - PullRequest
1 голос
/ 22 апреля 2019

Я пытаюсь запустить простой скрипт Python, который запускает команду ipconfig /all в качестве подтверждения концепции.

Вы можете найти его ниже:

from subprocess import PIPE, run

my_command = "ipconfig /all"
result = run(my_command, stdout=PIPE, stderr=PIPE, universal_newlines=True)
print(result.stdout, result.stderr)

Но мне не удалось его запустить, я попробовал как с командной строкой, так и нажатием на нее, но она открыла окно cmd на 1 секунду, а затем закрыла его, так что я даже не могу его прочитать.

Редактировать: я использую Python 3.7, и мой скрипт называется ipconfig.py

Ответы [ 2 ]

2 голосов
/ 22 апреля 2019

Очевидно, что ваша проблема не связана с самим сценарием, а скорее с вызовом интерпретатора Python . Проверьте [Python 3.Docs]: Как запустить программу на Python под Windows? .
Общий подход будет следующим:

  • Откройте окно cmd ( PS ) в каталоге скриптов
  • Запуск Python (используя полный путь: проверьте [Python 3.Docs]: использование Python в Windows для получения более подробной информации) в вашем модуле (например):

    "C:\Program Files\Python37-64\python.exe" ipconfig.py
    

Конечно, есть много способов улучшить вещи, например, добавить каталог установки в % PATH% (если его там еще нет), чтобы не указывать полный путь каждый раз 1 , но делайте один шаг за раз.

На стороне сценария: проверьте [Python 3.Docs]: подпроцесс. run ( args, *, stdin = None, input = None, stdout = None, stderr = Нет, capture_output = False, shell = False, cwd = Нет, timeout = Нет, check = False, кодировка = Нет, ошибки = Нет, текст = Нет, env = Нет, universal_newlines = Нет ) (и примеры):

  • Передать аргументы в виде списка:

    my_command = ["ipconfig", "/all"]
    
  • Вы также можете проверить состояние завершения команды (result.returncode)


1 : Если вы не отметили Добавьте Python 3.7 в PATH при его установке (проверьте образ из 2 и URL ), вам нужно добавить путь Python ( C: \ Users \ USER \ AppData \ Local \ Programs \ Python \ Python37 ) вручную. В сети много ресурсов, вот 3:

1 голос
/ 22 апреля 2019

Ваш код работает хорошо.Проблема в том, что cmd закрывает окно слишком быстро, и вы не видите результат.Просто добавьте команду, чтобы дождаться вашего взаимодействия, прежде чем закрывать окно.

Вы можете добавить это в конце вашего кода:

input("Press Enter to finish...")

Или приостановить выполнение после завершения:

import time

[в конце паузы кода на 5 секунд ....]

time.sleep(5)
...