0

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

X:\install\python-3.3.2.msi

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

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

现在一个新问题是 Python msi 安装程序是否支持静默安装。实际上,我希望安装保持静默,即我希望安装程序“知道”命令行调用中的所有参数,并且根本不需要用户交互。请查看下面 Viktor Kerkez 的评论,让我知道您是否也会这样做。

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

4

1 回答 1

1

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

msiexec 参数“/quiet”和“/qn”的作用相同,不要同时使用它们。

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

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

1) 来自 .exe 的引导调用(如编写的 setup.exe”,它在运行时已经获得管理员权限

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

3)更改 pyhton 解释器本身的清单(或尝试兼容性标志“始终需要管理员权限”)。

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

于 2013-08-09T13:05:28.103 回答