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

0 投票
1 回答
1332 浏览
提问于 2025-04-16 20:05

我正在开发一个部署工具,这个工具可以建立一个预装了多个依赖项的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 32位上使用的是Python 2.4.4。

更新1:我们已经解决了“总是安装”的问题,现在我只需要一种方法,让程序在完成之前保持运行。如果我使用/qn,进程会在后台启动并立即结束。我一直在想,为什么这么多Windows工具都是这样工作——这让命令行脚本变得不可能!

1 个回答

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 的帮助窗口。

撰写回答