python msi installer_关于python 2.7 Windows静默安装程序(.msi):python 2.7 Windows静默安装程序(.msi)-设置路径的命令行选项吗?...

在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中。 变种 是不同的。

不,我的意思是可以通过Windows注册表修改PATH

参见stackoverflow.com/a/8358361/541038

@JoranBeasley添加您的答案,我要接受它!

从2.4开始,Python MSI安装程序可以更新系统路径。只需将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资源管理器/命令行管理程序重新加载新的路径值。有一种方法可以执行此操作,但是显然Python安装程序不会使用它。因此,如果在运行安装后从资源管理器启动程序,则新进程将继承旧路径,而不是注册表路径。我在大约8个月内没有对此进行测试。也许改变了。

我刚刚在Windows XP上进行了测试(我知道),并且可以在将ADDLOCAL=ALL与Python 3.4 MSI安装程序结合使用后确认需要重新启动整个过程。

3.5.exe安装程序是否还需要重新启动?如果我手动启动安装程序,则无需重新启动。 :/我在这里处理此问题:stackoverflow.com/questions/47310884/

我已经在2.7.14中成功使用了此命令行,%PATH%更新似乎传播了msiexec / norestart / passive / log"。 python-2.7.14.amd64.log" / package"。 python-2.7.14。 amd64.msi" ADDLOCAL = ALL

我已经观察到在Windows 7(专业版)和python 2.7.14 x64上,不需要重新启动即可将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进程完成。这使msiexec返回状态可用于cmd.exe。

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

你可能感兴趣的:(python,msi,installer)