【问题标题】:python 2.7 windows silent installer (.msi) - command-line option to set the path?python 2.7 windows静默安装程序(.msi)-设置路径的命令行选项?
【发布时间】:2016-03-16 20:08:24
【问题描述】:

在 Windows 上使用静默安装程序 (.msi) 安装 python 2.7 时,是否有一个命令行选项可以将 Python 添加到路径环境变量,如 GUI 选项?

Python 3.5 安装程序默认包含一个选项 PrependPath=0,但是 Python 2.7 可以使用它吗?

https://docs.python.org/3/using/windows.html

看起来这个问题在这里讨论过,但没有针对 Python 2.7 的解决方案?

https://bugs.python.org/issue3561

编辑


这个批处理命令太棒了!!!

setx \M PATH "%PATH%;C:\Python\Python27;C:\Python\Python27\Scripts"

但 setx 会将存储的 %PATH% 字符串截断为 1024 字节。

【问题讨论】:

  • afaik 你可以通过注册表设置它....如果这有帮助...
  • msi 安装程序默认应将 python 添加到 windows 注册表,但添加到路径 env。变种。是不同的。
  • 不,我的意思是PATH可以通过windows注册表修改
  • @JoranBeasley 添加你的答案,我会接受它!

标签: python windows installation windows-installer


【解决方案1】:

我观察到在带有 python 2.7.14 x64 的 Windows 7 (Professional) 上,将 Python 添加到 PATH 不需要重新启动。安装后只需启动一个新的命令窗口,python 就会在 PATH 中。

您可以通过运行 msi 来确定安装是否需要重新启动,如下所示:

start/wait "" msiexec /i "python-2.7.11.amd64.msi" /passive /norestart ADDLOCAL=ALL
if %errorlevel% == 3010 ( echo Success: reboot required ) else (if %errorlevel% == 0 ( echo Success ) else ( echo Installation failed with error code %errorlevel% ) )

也就是说,如果%errorlevel% 为 3010 (ERROR_SUCCESS_REBOOT_REQUIRED),则需要重新启动。使用start/wait 会导致 cmd.exe 等到 msiexec 进程完成。这允许 cmd.exe 可以使用 msiexec 返回状态。

顺便说一句,如果您希望系统上的所有用户都可以安装 Python,您可能希望在命令行中包含选项 ALLUSERS=1

【讨论】:

    【解决方案2】:

    Python MSI 安装程序可以从 2.4 更新系统路径。只需将 ADDLOCAL=ALL 添加到命令行即可。您必须在传播之前重新启动系统。

    msiexec /i "python-2.7.11.amd64.msi" /passive /norestart ADDLOCAL=ALL
    

    https://www.python.org/download/releases/2.4/msi/

    【讨论】:

    • "您必须在系统传播之前重新启动系统。" - 这不是我的选择。
    • 也许作者的意思是“重启提示”而不是系统。像上面那样使用 ADDLOCAL=ALL 运行 msiexec 在您的下一个 cmd 会话中成功地将 python 引入 PATH。
    • 是的,克里斯,我的意思是系统重启。此选项会更新注册表,但不会强制 Windows Explorer/Shell 重新加载新的路径值。有一种方法可以做到这一点,但显然 Python 安装程序不使用它。因此,如果您在运行安装后从资源管理器启动程序,新进程将继承旧路径,而不是注册表路径。我已经有 8 个月没有测试过了。也许它已经改变了。
    • 我刚刚在 Windows XP 上进行了测试(我知道),并且可以确认在将 ADDLOCAL=ALL 与 Python 3.4 MSI 安装程序一起使用后需要重新启动。
    • 3.5.exe 安装程序是否也需要重新启动?如果我手动启动安装程序,则无需重新启动。 :/ 我在这里处理这个问题:stackoverflow.com/questions/47310884/…
    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 2021-11-04
    • 2011-12-29
    • 1970-01-01
    • 2017-10-30
    • 1970-01-01
    • 2013-05-25
    • 2023-04-06
    相关资源
    最近更新 更多