You can use the obsolete os.system ('msiexec /i whatever.msi') or, better, the equivalent of subprocess subprocess.call - in any case, you can also add any additional msiexec flags or arguments you want (documentation is plentiful here ) .
source share