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

问题描述 投票:0回答:1

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

X:\install\python-3.3.2.msi

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

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

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

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

python msiexec silent-installer
1个回答
1
投票

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

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

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

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

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.