How to run another Python program without holding up original

Question:

What command in Python can be used to run another Python program?

It should not wait for the child process to terminate. Instead, it should continue on. It also does not need to remember its child processes.

Asked By: PyRulez

||

Answers:

Use subprocess:

import subprocess

#code
prog = subprocess.Popen(['python', filename, args])
#more code
Answered By: xgord

If the other Python program is importable, and the functionality you need can be called via a function, then it is preferable to use multiprocessing instead of subprocess, since the arguments can be passed as Python objects, instead of via strings:

import somescript
import multiprocessing as mp

proc = mp.Process(target=somescript.main, args=...)
proc.start()
Answered By: unutbu
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.