Запустить внешнее приложение неблокирующим способом в python

Используя 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

person imp    schedule 13.03.2014    source источник
comment
продублировано!   -  person Leonardo.Z    schedule 13.03.2014
comment
@ Leonardo.Z Ответ для системы unix, я прошу Windows ЗДЕСЬ   -  person imp    schedule 13.03.2014
comment
прочитай ответ еще раз!   -  person Leonardo.Z    schedule 13.03.2014
comment
@ Leonardo.Z preexec_fn=os.setpgrp не является unix, можете ли вы прокомментировать здесь ответ, о котором вы говорите   -  person imp    schedule 13.03.2014
comment
preexec_fn только для un*x-oids. Кажется, существует грубый эквивалент для флагов создания Windows = CREATE_NEW_PROCESS_GROUP, но я никогда не пробовал.)   -  person Leonardo.Z    schedule 13.03.2014
comment
@ Leonardo.Z, пожалуйста, ознакомьтесь с последним вопросом редактирования. Я пробовал p=subprocess.Popen([rD:\pythonCode\external.exe],creationflags=subprocess.CREATE_NEW_PROCESS_GROUP), но это также блокирует   -  person imp    schedule 13.03.2014
comment
попробуй os.startfile(). Или start_new_session аналог   -  person jfs    schedule 13.03.2014