Одна из самых странных вещей заключается в том, что в течение как минимум года он работал нормально ежедневно, а затем внезапно возникла эта проблема. Я попробовал тот же код на другой машине, и он работает как положено, но его нужно запускать на машине автоматизации. Это машина с Windows 10... Я бы не стал этого делать, если бы мне не пришлось, но устаревшая программа, которую я автоматизирую, работает только на настольных компьютерах с Windows.
Я бы переопределил библиотека, но он также использует подпроцесс, чтобы установить текущую версию Chrome и использовать правильный драйвер. Я пытался часами, и это тупик, в который я попал.
Редактировать:
Вот код, который зависает. Я могу отлаживать и приостанавливать stdout =stream.communicate()[0].decode(), но он не сможет напечатать(stdout) на следующей строке с помощью F10 (переход).
Код: Выделить всё
import subprocess
def determine_powershell():
"""Returns "True" if runs in Powershell and "False" if another console."""
cmd = "(dir 2>&1 *`|echo CMD);&echo powershell"
with subprocess.Popen(
cmd,
stdout=subprocess.PIPE,
stderr=subprocess.DEVNULL,
stdin=subprocess.DEVNULL,
shell=True,
) as stream:
stdout = stream.communicate()[0].decode()
print(stdout)
return "" if stdout == "powershell" else "powershell"
if __name__ == "__main__":
determine_powershell()
Спасибо,
Подробнее здесь: https://stackoverflow.com/questions/791 ... ing-stdout