运行 python 来自 python 脚本但在 python 脚本之外的脚本

Run python script from python script BUT outside of python script

这听起来像是谜语或笑话,但实际上我还没有找到这个问题的答案。

究竟是什么问题?

我想要运行 2 个脚本。在第一个脚本中,我调用了另一个脚本,但我希望它们继续并行运行,而不是在 2 个单独的线程中运行。主要是我不希望第二个脚本在第一个 python 脚本中 运行ning(这意味着如果我 运行 Chrome 来自 python 脚本的浏览器然后关闭python 脚本,Chrome 也会被关闭。

我想要的是 Linux 机器上的样子:我打开两个终端,运行 每个终端中的两个脚本 - 它们不是两个线程,它们彼此独立,关闭一个会不要关闭另一个。或者它可以像在 Linux 机器上一样,我可以 运行 2 python 终端后台脚本 'python xxx.py &' (&) 符号。

总结:

我想运行里面的'FIRST.py'脚本'SECOND.py'脚本。然而,线程模块没有,主要是 SECOND.py 脚本独立于 FIRST.py 脚本,也就是说,关闭 FIRST.py 不会对 SECOND.py 产生任何影响。 该解决方案应该适用于 WINDOWS、LINUX 和 MAC。

顺便说一句: 我试过 windows:

subprocess.call(['python','second.py','&'])
subprocess.call(['python','second.py'])
os.system('python second.py') # I was desperate

我还没有尝试使用 daemon=False 进行线程处理,但我觉得它有点像恶魔,而且我觉得我的技能还没有到可以控制游乐场之外的线程的程度: )

在此先感谢您的帮助

您可以使用 subprocess 模块中的 Popen 构造函数来启动后台进程,使用

import subprocess
p = subprocess.Popen(["python","second.py"])

创建一个后台进程并且 first.py 的执行未被阻止。