我需要在应用程序包安装中被动安装Python,因此我使用以下内容:
python-3.5.4-amd64.exe /passive PrependPath=1
根据:3.1.4。在没有UI的情况下安装我使用PrependPath参数,该参数应将路径添加到Windows环境变量中的Path中。
但它似乎不起作用。变量不进行任何更改。
如果我手动开始安装,并选择或取消选择添加到路径的复选框,那么一切都可以。
在修改当前安装时,与清除安装相同。不幸的是,我没有其他PC与Win 10 Pro来测试它。
我也在Python 3.6.3中尝试过,得到了同样的结果。
编辑:
还尝试了PowerShellStart-Process python-3.5.4-amd64.exe -ArgumentList /passive , PretendPath=1
,结果相同。
也在几个装有Windows 10的电脑上进行了测试,结果相同,所以问题不仅仅是在单个电脑上
编辑:当然,所有尝试都是以管理员身份运行的。
好吧,从我的角度来看,这似乎是Python安装程序中的一个错误,我找不到任何方法来让它工作。
我找到了以下解决方法:
使用py.exe,它是位于C:\Windows中的本地计算机上所有版本Python的包装器,因此您可以直接从CMD在任何地方运行它,因为C:\Windows是Path变量的标准内容。
py -3.5 -c "import sys; print(sys.executable[:-10])"
这给了我python 3.5安装的目录。
然后我手动将其设置为路径:
setx Path %UserProfile%";PythonLocFromPreviousCommand
尝试powershell来完成
Start-Process -NoNewWindow .python.exe /passive
确保使用提升的命令提示符(即:以管理员身份运行)。
您是否尝试使用InstallAllUsers参数。默认情况下,它被设置为>为0,所以试着这样使用它(这与[此处][1]中的示例相同):
python-3.6.0.exe/quiet InstallAllUsers=1 PrependPath=1 Include_test=0使用
/quiet
而不是/passive
可能会有所不同[1] :https://docs.python.org/3.6/使用/windows.html#在没有ui的情况下安装"您提供的链接">
为了回答ErikŠťastný的评论,我认为解决您问题的一个好办法是将python与您的程序打包,以确保所有所需的库都已预装。
我还尝试了python安装程序的命令行选项,并注意到了与您相同的问题,下面是我找到的解决方案:
- 从这里下载64位安装程序:https://www.python.org/downloads/windows/(链接标题为">Windowsx86-64可执行安装程序")
- 卸载任何当前的python安装。
- 您可以使用以下命令:
START python-3.8.3-amd64.exe /uninstall
- (将python-3.8-amd64.exe替换为您下载的文件名)
- (右键单击,然后以管理员身份运行cmd或批处理文件)
- 您可以使用以下命令:
- 为所有用户安装(作为管理员)python 64位,使用START命令:
START python-3.8.3-amd64.exe /passive PrependPath=1 Include_pip=1 InstallAllUsers=1
- (用下载的文件名替换python-3.8-amd64.exe)
- (右键单击,然后以管理员身份运行cmd或批处理文件)
- (有关python安装程序命令行选项的更多信息:https://docs.python.org/3/using/windows.html#installing-没有ui)
- (可选)打开一个新的cmd窗口,验证python是否可以在任何位置工作:
- 您可以运行以下命令:
python --version
- (如果您没有看到类似"Python 3.8.3"的输出,那么Python还没有添加到您的PATH中)
- (注意:直到我打开一个新的命令提示符窗口,该命令才起作用)
- 您可以运行以下命令:
对我来说,所有的细节都很重要,所以不要跳过任何细节。