Python 调用脚本而不等待它执行

Python calling script without waiting for it to execute

我想知道是否有任何方法可以调用 python 脚本并在不同的线程中完全启动该程序,这样主程序(调用者)就不必等到被调用的脚本完成执行。到目前为止,我已经尝试过 subprocess 和 os.system,但这两个都延迟到脚本执行完毕。

main.py

os.system('"F:\second.py"')
//continue the rest of the code without waiting for second.py to finish

second.py

//do stuff

你可以试试subprocess

first.py

import subprocess
subprocess.Popen(["python.exe", "second.py"])
print "done"

second.py

import time
for i in range(10):
    print i
    time.sleep(10)

编辑:

如果你想完全分开第一个和第二个脚本添加一个标志

first.py

import subprocess
subprocess.Popen(["python.exe", "second.py"], creationflags=subprocess.CREATE_NEW_CONSOLE)
print "done"

如果您使用的是 Unix 计算机,则可以使用 os.fork() 创建一个单独的进程,即使父进程已完成,该进程也会继续 运行。例如:

main.py

import os

pid = os.fork()
if pid == 0: # pid is only equal to 0 in the child process
    os.system('python second.py')

second.py

import time

time.sleep(2)
print("I'm a child process!")