Python subprocess.popen() without waiting
Solution 1
Just don't call myProc.communicate()
if you don't want to wait. subprocess.Popen
will start the process.
Solution 2
Call the script in another window.
myProc = subprocess.Popen(["start", sys.executable, "script2.py", "argument"])
myProc.communicate()
start
is a windows shell function that runs a program separately, allowing the current one to continue its process. I haven't tested this as I've no access to a Windows OS, but The linux equivalent (nohup
) works as required.
If you need fine control over what happens with script2.py, refer to the multiprocessing
module here.
Related videos on Youtube
jul
Updated on September 01, 2022Comments
-
jul over 1 year
I'm using Python 3.4.2 on Windows. In script1.py I'm doing this:
myProc = subprocess.Popen([sys.executable, "script2.py", "argument"]) myProc.communicate()
it works and call script2.py . The problem is that in script2.py there is a infinite loop (there must be) and the script1.py is waiting for script2.py to finish. How can I tell to script1.py to just call script2.py and don't wait for the process to finish?
-
jul about 9 yearsI can't believe it..sorry for the silly question, and thanks for the reply.