我有一个程序我正在另一个程序中运行。子进程运行时,父程序冻结。有没有办法在操作系统中将子进程作为父进程本身运行?
答案 0 :(得分:3)
您可以使用subprocess.Popen
,假设您真的想要启动一个与父Python脚本完全分开的程序:
import subprocess
subprocess.Popen(["command", "-a", "arg1", "-b", "arg2"])
这将启动command
作为调用脚本的子进程,不会阻塞等待它完成。如果父进程退出,子进程将继续运行。
答案 1 :(得分:0)
如果您真的想拥有独立流程,请查看multiprocessing
模块。如果在同一个OS进程中运行单独的线程就足够了,那么使用threading
。或者您是否有兴趣使用subprocess
?
不幸的是,这个术语有点令人困惑。例如,在Linux" thread"和"过程"都是独立的过程,没有真正的区别。在python"过程"是一个单独的OS进程,线程在相同的OS进程中运行。
有关这些问题的详细信息,您可以查看以下问题:Multiprocessing vs Threading Python