2011-06-22 18 views
0

我正在开发一个部署工具,该工具将构建一个预安装依赖项的python环境。 According to the documentation on Python's web-site我应该可以做这样的事情:在已安装Python的计算机上非交互式安装额外的Python环境

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安装问题”的解决方案,我只需要一种方法来使程序块直到完成。如果我/ qn过程产生后台进程并立即终止。我一直在想,为什么有这么多的Windows工具以这种方式工作 - 它使命令行脚本不可能实现!

回答

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

+0

/a解决了无论是否存在有效的Python安装都无法解决的问题。我只需要一种方法来强制进程阻塞,直到安装完成。 –

+1

我也注意到,即使安装没有完成,msiexec也会立即返回提示。 – Jacob

+0

我想我可能会使用该项目的zip文件作弊。在Windows上编写脚本只是一个痛苦。 –

相关问题