【发布时间】:2013-01-09 07:23:14
【问题描述】:
有没有安装 msi 的 python 脚本?我需要安装 msi 并运行它而不显示任何对话模式。 我的文件夹 c:\user\documents 上有 msi,并且我有一个使用 python 脚本开发的 wxpython GUI。我需要静默安装 msi 并从 GUI 运行 exe。
【问题讨论】:
-
我认为这个更适合 SO。
标签: python windows installation
有没有安装 msi 的 python 脚本?我需要安装 msi 并运行它而不显示任何对话模式。 我的文件夹 c:\user\documents 上有 msi,并且我有一个使用 python 脚本开发的 wxpython GUI。我需要静默安装 msi 并从 GUI 运行 exe。
【问题讨论】:
标签: python windows installation
简单的使用。没有提供转换,代码是非阻塞的:
import os
os.system('msiexec /i %s /qn' % msi_location)
使用转换,代码是非阻塞的:
import os
os.system('msiexec /i %s TRANSFORMS=%s /qn' % (msi_location, transforms_location)
使用转换,代码被阻塞 - 所以你知道它什么时候完成:
import subprocess
subprocess.call('msiexec /i %s TRANSFORMS=%s /qn' % (msi_location, transforms_location), shell=True)
有关 TRANSFORMS 的更多信息:https://msdn.microsoft.com/en-us/library/aa367447%28v=vs.85%29.aspx
【讨论】:
这不是一个真正的 python 问题,它取决于您的特定 MSI 包是否允许无人值守安装。请参阅这篇 SO 文章
detect msi parameters for unattended install
如何了解 MSI 包的参数。然后,使用 Windows 命令外壳手动尝试无人值守安装,调用 msiexec。看这里
http://technet.microsoft.com/en-us/library/cc759262%28v=ws.10%29.aspx
了解更多信息。
最后,在python中你需要做的就是使用os.system调用msiexec,并带有包名和正确的参数。
【讨论】: