使用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,它打印了"应用程序启动",但主进程永远不会终止。主进程等待外部应用程序终止,这是不希望的。我也调查了this q&a但没有得到解决方案。
我也试过了
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