以编程方式从Python脚本安装Python msi应用程序

时间:2013-08-07 22:10:31

标签: python msiexec silent-installer

如何以编程方式安装此位置上的Python msi:

X:\install\python-3.3.2.msi

我知道我可以使用subprocess.call()Popen()来做到这一点,但我不知道如何自动设置其他参数。就像让所有用户都可以使用该程序一样。

我想要做的是从Python脚本运行msi应用程序,这样每次运行脚本时,它都会在运行脚本的机器上安装python-3.3.2.msi

现在一个新问题是Python msi安装程序是否支持静默安装。事实上,我希望安装是静默的,即我希望安装人员知道"所有参数都来自命令行调用,无需用户交互。请看下面的Viktor Kerkez的评论,如果你有这样的话,请告诉我。

是否可以通过命令行告诉所有必要的参数?

1 个答案:

答案 0 :(得分:1)

通常,每个精心设计的MSI都可以安静地安装。应该尝试给定的标准命令行,其他可选参数可能是目录等的TARGETDIR。

msiexec参数“/ quiet”和“/ qn”也一样,不要同时使用它们。

您的案例中的主要问题是管理员权限。如果您没有做过特殊的事情(比如添加/更改手动清单),脚本通常不会以管理员权限运行。如果你只是使用参数“/ qb”而不是“/ qn”,通常MSI应该提出UAC。先尝试一下,这是最简单的(也许不是绝对最好的)解决方案。不沉默,但无人值守的安装,可能就足够了。 或者甚至是“/ qb +”,那么你也会得到一个最后一个盒子。

要从脚本开始安装(或其他需要管理员权限的事物),需要:

1)来自.exe的启动捆绑调用(如写入的setup.exe“,在运行时已获得管理员权限

2)您可以通过鼠标右键单击或使用一些手动添加的shell条目来启动具有管理员权限的脚本,以进行鼠标右键/ shell集成。

3)更改pyhton解释器本身的清单(或尝试兼容性标记“Always require admin rights”)。

如果你告诉我们,走哪条路,也许我们可以提供一些更详细的提示。 请在以下SE问题中阅读我的回答,其中有一些共同点: Install msi with msiexec and c#