Python subprocess.popen() 无需等待

Python subprocess.popen() without waiting

我在 Windows 上使用 Python 3.4.2。在 script1.py 我正在这样做:

myProc = subprocess.Popen([sys.executable, "script2.py", "argument"])
myProc.communicate()

有效并调用 script2.py。 问题是在 script2.py 中有一个无限循环(必须有)并且 script1.py 正在等待 script2.py 完成。我如何告诉 script1.py 只调用 script2.py 而不要等待进程完成?

如果您不想等待,请不要拨打 myProc.communicate()subprocess.Popen 将启动进程。

在另一个window中调用脚本。

myProc = subprocess.Popen(["start", sys.executable, "script2.py", "argument"])
myProc.communicate()

start 是一个 windows shell 函数,它单独运行一个程序,允许当前程序继续其进程。我没有对此进行测试,因为我无法访问 Windows OS,但是 linux 等效项 (nohup) 可以按要求工作。

如果您需要对 script2.py 发生的情况进行精细控制,请参阅 multiprocessing 模块 here