Я пытаюсь открыть скрипт python от другого без блокировки с помощью Popen. Стартовый скрипт открывает скрипт драйвера, и (с помощью кнопки tkinter) скрипт драйвера может открывать сторонний скрипт. Когда я пытаюсь вызвать Popen в скрипте драйвера, ничего не происходит - оболочка открывается очень быстро, а затем закрывается. Однако, когда я запускаю скрипт драйвера без предварительного вызова стартера (как __main__
), боковой скрипт открывается нормально.
Я разместил код ниже, я что-то упускаю из-за вложенных вызовов Popen? Для исполняемого файла я пробовал sys.executable
, python.exe
и pythonw.exe
. Нет работы. Потоки могут работать как альтернатива Popen, но в стороннем скрипте также используется tkinter, поэтому мне нужно найти способ сделать поток tkinter безопасным.
starter.py:
pid = subprocess.Popen(["pythonw.exe", "driver.py"])
driver.py:
pid = subprocess.Popen([sys.executable, "side_script.py"]