如何从python脚本执行MSI安装程序?

如何从python脚本执行MSI安装程序?,python,python-3.x,subprocess,windows-installer,os.system,Python,Python 3.x,Subprocess,Windows Installer,Os.system,我需要从python脚本安装node.js。 我尝试了以下解决方案: 我尝试了以下各种代码: os.system('msiexec /i %s /qn' % 'node_install.msi') subprocess.check_call(["msiexec /i node_install.msi"]) subprocess.Popen('node_install.msi') 但我得到了错误信息: [WinError 193] %1 is not a valid Win32 applic

我需要从python脚本安装node.js。 我尝试了以下解决方案:

我尝试了以下各种代码:

os.system('msiexec /i %s /qn' % 'node_install.msi')
subprocess.check_call(["msiexec /i node_install.msi"])
subprocess.Popen('node_install.msi')
但我得到了错误信息:

[WinError 193] %1 is not a valid Win32 application
以下是我成功下载MSI文件的脚本:

if platform.architecture()[0] == "64bit":
    wget.download('https://nodejs.org/dist/v12.15.0/node-v12.15.0-x64.msi','node_install.msi')
    logger.info("We will try now to install NodeJS 64Bits. Please follow the installation process.")
    #os.system('msiexec /i %s /qn' % 'node_install.msi')
    #subprocess.check_call(["msiexec /i node_install.msi"])
    subprocess.Popen('node_install.msi')
else:
    wget.download('https://nodejs.org/dist/v12.15.0/node-v12.15.0-x86.msi', 'node_install.msi')
    logger.info("We will try now to install NodeJS 32Bits. Please follow the installation process.")
    #os.system('msiexec /i %s /qn' % 'node_install.msi')
    #subprocess.check_call(["msiexec /i node_install.msi"])
    subprocess.Popen('node_install.msi')
是否有人已经成功地从python脚本安装了MSI