在静默安装 Python 时添加到 Path var - 可能的错误?
Adding into Path var while silent installation of Python - possible bug?
我需要在我的应用程序包安装中被动安装 Python,所以我使用以下内容:
python-3.5.4-amd64.exe /passive PrependPath=1
根据这个:3.1.4. Installing Without UI 我使用 PrependPath 参数,它应该将路径添加到 Windows 环境变量中的 Path 中。
不过好像不行。变量没有任何变化。
如果我手动开始安装,然后 select 或取消 select 复选框并添加到路径中,那么一切正常。
与清除安装同样适用于修改当前安装。不幸的是,我没有其他装有 Win 10 Pro 的 PC 来测试它。
我也用 Python 3.6.3 试过,结果相同。
编辑:
也尝试使用 PowerShell Start-Process python-3.5.4-amd64.exe -ArgumentList /passive , PretendPath=1
得到相同的结果。
还在几台 Windows 10 的 PC 上进行了测试,结果相同,所以问题不仅仅出现在一台 PC 上
编辑:
当然,所有尝试都是 运行 作为管理员。
尝试使用 powershell 来做到这一点
Start-Process -NoNewWindow .\python.exe /passive
确保您使用的是提升的命令提示符(即:运行 作为管理员)。
Have you tried to use the InstallAllUsers argument. By default it is set >to 0 so try to use it like this (which is the same example from [here][1]):
python-3.6.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0
it migth make a difference to use the /quiet
over /passive
[1]: https://docs.python.org
/3.6/using/windows.html#installing-without-ui "the link you supplied"
回答 Erik Šťastný 的评论,我认为解决您的问题的一个好方法是将 python 与您的程序打包在一起,以确保预安装所有必需的库。
好的,从我的角度来看,这似乎是 Python 安装程序中的错误,我找不到任何方法让它工作。
我找到了以下解决方法:
在位于 C:\Windows 的本地计算机上使用 py.exe 它是所有版本 Python 的包装器,因此您可以直接从 CMD 运行 任何地方谢谢to C:\Windows 是Path变量的标准内容。
py -3.5 -c "import sys; print(sys.executable[:-10])"
这给了我 python 3.5 安装目录。
然后我通过以下方式手动将其设置为路径:
setx Path %UserProfile%";PythonLocFromPreviousCommand
我还尝试了 python 安装程序的命令行选项并注意到了与您相同的问题,这是我找到的解决方案:
- 从此处下载 64 位安装程序:https://www.python.org/downloads/windows/
(link 的标题为“Windows x86-64 可执行安装程序”)
- 卸载所有当前 python 安装。
- 您可以使用此命令:
START python-3.8.3-amd64.exe /uninstall
- (将python-3.8.3-amd64.exe替换为您下载的文件名)。
- (运行 cmd 或您的批处理文件作为管理员,由 right-clicking,然后 运行 作为管理员)。
- 为所有用户安装(以管理员身份)python64 位,使用 START 命令:
START python-3.8.3-amd64.exe /passive PrependPath=1 Include_pip=1 InstallAllUsers=1
- (将python-3.8.3-amd64.exe替换为您下载的文件名)。
- (运行 cmd 或您的批处理文件作为管理员,由 right-clicking,然后 运行 作为管理员)。
- (有关 python 安装程序命令行选项的更多信息:https://docs.python.org/3/using/windows.html#installing-without-ui)。
- (可选)打开一个新的 cmd window 以验证 python 是否可以在任何位置运行:
- 您可以运行这个命令:
python --version
- (如果您没有看到类似 "Python 3.8.3" 的输出,则说明 Python 尚未添加到您的 PATH 中)。
- (注意:在我打开新的命令提示符 window 之前该命令不起作用)。
对我来说,所有的细节都很重要,所以不要跳过任何一个。
我需要在我的应用程序包安装中被动安装 Python,所以我使用以下内容:
python-3.5.4-amd64.exe /passive PrependPath=1
根据这个:3.1.4. Installing Without UI 我使用 PrependPath 参数,它应该将路径添加到 Windows 环境变量中的 Path 中。
不过好像不行。变量没有任何变化。
如果我手动开始安装,然后 select 或取消 select 复选框并添加到路径中,那么一切正常。
与清除安装同样适用于修改当前安装。不幸的是,我没有其他装有 Win 10 Pro 的 PC 来测试它。
我也用 Python 3.6.3 试过,结果相同。
编辑:
也尝试使用 PowerShell Start-Process python-3.5.4-amd64.exe -ArgumentList /passive , PretendPath=1
得到相同的结果。
还在几台 Windows 10 的 PC 上进行了测试,结果相同,所以问题不仅仅出现在一台 PC 上
编辑: 当然,所有尝试都是 运行 作为管理员。
尝试使用 powershell 来做到这一点
Start-Process -NoNewWindow .\python.exe /passive
确保您使用的是提升的命令提示符(即:运行 作为管理员)。
Have you tried to use the InstallAllUsers argument. By default it is set >to 0 so try to use it like this (which is the same example from [here][1]):
python-3.6.0.exe /quiet InstallAllUsers=1 PrependPath=1 Include_test=0 it migth make a difference to use the
/quiet
over/passive
[1]: https://docs.python.org /3.6/using/windows.html#installing-without-ui "the link you supplied"
回答 Erik Šťastný 的评论,我认为解决您的问题的一个好方法是将 python 与您的程序打包在一起,以确保预安装所有必需的库。
好的,从我的角度来看,这似乎是 Python 安装程序中的错误,我找不到任何方法让它工作。
我找到了以下解决方法:
在位于 C:\Windows 的本地计算机上使用 py.exe 它是所有版本 Python 的包装器,因此您可以直接从 CMD 运行 任何地方谢谢to C:\Windows 是Path变量的标准内容。
py -3.5 -c "import sys; print(sys.executable[:-10])"
这给了我 python 3.5 安装目录。
然后我通过以下方式手动将其设置为路径:
setx Path %UserProfile%";PythonLocFromPreviousCommand
我还尝试了 python 安装程序的命令行选项并注意到了与您相同的问题,这是我找到的解决方案:
- 从此处下载 64 位安装程序:https://www.python.org/downloads/windows/ (link 的标题为“Windows x86-64 可执行安装程序”)
- 卸载所有当前 python 安装。
- 您可以使用此命令:
START python-3.8.3-amd64.exe /uninstall
- (将python-3.8.3-amd64.exe替换为您下载的文件名)。
- (运行 cmd 或您的批处理文件作为管理员,由 right-clicking,然后 运行 作为管理员)。
- 您可以使用此命令:
- 为所有用户安装(以管理员身份)python64 位,使用 START 命令:
START python-3.8.3-amd64.exe /passive PrependPath=1 Include_pip=1 InstallAllUsers=1
- (将python-3.8.3-amd64.exe替换为您下载的文件名)。
- (运行 cmd 或您的批处理文件作为管理员,由 right-clicking,然后 运行 作为管理员)。
- (有关 python 安装程序命令行选项的更多信息:https://docs.python.org/3/using/windows.html#installing-without-ui)。
- (可选)打开一个新的 cmd window 以验证 python 是否可以在任何位置运行:
- 您可以运行这个命令:
python --version
- (如果您没有看到类似 "Python 3.8.3" 的输出,则说明 Python 尚未添加到您的 PATH 中)。
- (注意:在我打开新的命令提示符 window 之前该命令不起作用)。
- 您可以运行这个命令:
对我来说,所有的细节都很重要,所以不要跳过任何一个。