在Python静默安装时添加到Path var中-可能存在错误



我需要在应用程序包安装中被动安装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安装程序的命令行选项,并注意到了与您相同的问题,下面是我找到的解决方案:

  1. 从这里下载64位安装程序:https://www.python.org/downloads/windows/(链接标题为">Windowsx86-64可执行安装程序")
  2. 卸载任何当前的python安装。
    • 您可以使用以下命令:START python-3.8.3-amd64.exe /uninstall
    • (将python-3.8-amd64.exe替换为您下载的文件名)
    • (右键单击,然后以管理员身份运行cmd或批处理文件)
  3. 为所有用户安装(作为管理员)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)
  4. (可选)打开一个新的cmd窗口,验证python是否可以在任何位置工作:
    • 您可以运行以下命令:python --version
    • (如果您没有看到类似"Python 3.8.3"的输出,那么Python还没有添加到您的PATH中)
    • (注意:直到我打开一个新的命令提示符窗口,该命令才起作用)

对我来说,所有的细节都很重要,所以不要跳过任何细节。

相关内容

最新更新