Когда я запускаю скрипт PowerShell из Python, задержка кажется примерно 45 с, и я не могу понять, почему.
Я пытаюсь запустить скрипт PowerShell (обращаясь к некоторым API, доступным только для PowerShell) из скрипта Python.
Я пробовал много перестановок, и все они имеют ~ 45 секундную задержку по сравнению с простым запуском сценария из командной строки с использованием идентичной командной строки.
Например - sample.ps1 может сказать:
echo foo
И runner.py может сказать:
import subprocess
p = subprocess.Popen([POWERSHELL, '-File', 'sample.ps1'], stdout=subprocess.STDOUT)
d = p.stdout.read()
Быстрый запуск сценария .ps1, запуск его через runner.py (Python 2.7, 32-разрядная на 64-разрядной машине) задерживается на 45 секунд.
Точно так же происходит, если я использую "os.system" или встроенные инструменты процесса Twisted. Так что я подозреваю, что между интерпретатором Python и интерпретатором Powershell существует некое тонкое взаимодействие, возможно, связанное с созданием консольных окон или обработкой потоков stdin / out / err? (что, как я знаю, «реально не существует» таким же образом в Windows)