nickpick nickpick - 2 months ago 16
Python Question

subprocess.call and ending current program

My main program checks if a new version of itself is available and if so it downloads the new installer file and runs it:

subprocess.call(["installer.exe"], shell=True)

But in order to overwrite the old files, it needs to exit itself after calling the subprocess. How can I achieve this?

Answer

In Windows, just start your installer program instead of waiting for it.

import subprocess

subprocess.call(["start","installer.exe"],shell=True)
print("out")

Running this will print out immediately and returns to the console if this is the last statement (or call sys.exit())