在已安装Python的计算机上非交互式安装其他Python环境

时间:2011-06-22 14:13:55

标签: python windows windows-installer msiexec

我正在开发一个部署工具,它将构建一个预先安装了许多依赖项的python环境。 According to the documentation on Python's web-site我应该可以这样做:

msiexec.exe /i python_installer\python-2.4.4.msi TARGETDIR=c:\temp\install\fooX

但是,如果系统上已安装该版本的Python(在常规C:\ Python24位置),则此命令行将尝试修复现有安装。它不会在TARGETDIR中创建新安装。

是否有人知道其他命令行参数,这些参数将帮助我实现以下目标:

  • 我希望在安装完成之前阻止安装。这样,一旦当前流程结束,我就可以开始构建我的环境的下一个流程。
  • 我希望安装始终安装到TARGETDIR,无论其他地方是否存在有效的Python安装。

仅供参考,我在Windows XP 32bit上使用Python 2.4.4。

UPDATE1:我们有一个“awlays安装问题”的解决方案,我只需要一种方法来使程序块直到完成。如果我这样做,那么这个过程会产生一个后台进程并立即终止。我一直想知道为什么这么多Windows工具以这种方式工作 - 它使得命令行脚本无法实现!

1 个答案:

答案 0 :(得分:2)

您可以尝试使用/a代替/i标记:

来自msiexec帮助:

/a <Product.msi>
    Administrative install - Installs a product on the network

另一个需要考虑的选择是/qn

/q[n|b|r|f]
    Sets user interface level
    n - No UI

您只需执行msiexec不带参数即可进入msiexec的帮助窗口。