Используя Python 2.7, Windows 7 64 бит. Я хочу вызвать внешнее приложение для запуска с помощью скрипта Python. И после запуска внешнего приложения основной процесс должен продолжаться и, наконец, завершаться, не дожидаясь и не прослушивая завершение внешнего приложения. Значит, при запуске внешнего приложения основной процесс не должен зависеть от внешнего приложения для завершения. Я использовал:
print "ss"
os.system(r"D:\pythonCode\external.exe")
print "application started"
В приведенном выше коде external.exe запускается, но он никогда не печатает «приложение запущено», поэтому основной процесс никогда не завершается.
Также пробовал с:
p = subprocess.Popen([r"D:\pythonCode\external.exe"])
print "application started"
sys.exit(0)
В приведенном выше случае запускается external.exe, он печатает «приложение запущено», но основной процесс никогда не завершается. Основной процесс ожидает завершения работы внешнего приложения, что нежелательно. Я также просмотрел этот вопрос и ответ, но не нашел для него решения.
Я также пробовал с p=subprocess.Popen([r"D:\pythonCode\external.exe"],creationflags=subprocess.CREATE_NEW_PROCESS_GROUP)
, но происходит такая же блокировка
а также
DETACHED_PROCESS = 0x00000008
pid = subprocess.Popen([r"D:\pythonCode\external.exe"], creationflags=DETACHED_PROCESS).pid
os.startfile()
. Илиstart_new_session
аналог - person jfs   schedule 13.03.2014