【问题标题】:How do I upgrade the Python installation in Windows 10?如何在 Windows 10 中升级 Python 安装?
【发布时间】:2017-12-21 14:05:22
【问题描述】:

我的一个 LAB 工作站上安装了 Python 2.7.11。我想将 Python 升级到至少 3.5。

我应该怎么做? 我应该更喜欢完全卸载 2.7.11 而不是安装新的吗? 有没有办法更新它?更新是个好主意吗?

【问题讨论】:

标签: python python-3.x


【解决方案1】:

Python 的每个次要版本,即任何 3.x 和 2.x 版本,都将与您计算机上的其他版本并行安装。只有补丁版本会升级现有安装。

因此,如果您想保留已安装的 Python 2.7,那么只需让它使用安装程序安装新版本即可。如果你想摆脱 Python 2.7,你可以在安装新版本之前或之后卸载它——这没有区别。

当前的 Python 3 安装附带 py.exe 启动器,默认情况下安装到系统目录中。这使得它可以从 PATH 中使用,因此您可以通过使用 py 而不是 python 作为命令从任何 shell 自动运行它。这避免了您必须自己将当前的 Python 安装放入 PATH 中。这样,您可以轻松地并排安装多个 Python,而不会相互干扰。运行时,只需使用py script.py 而不是python script.py 即可使用启动器。您还可以使用 py -3 或 py -3.6 等指定版本来启动特定版本,否则启动器将使用当前默认值(通常是最新的 3.x)。

如果您决定保留 Python 2.7 安装,您还可以使用启动器运行 Python 2 脚本(这些脚本的语法通常与 Python 3 不兼容)。只需使用py -2 script.py 启动脚本即可。


对于 PyPI 包,每个 Python 安装都有自己的文件夹,模块安装在该文件夹中。因此,如果您安装了新版本并且想要使用为以前版本安装的模块,则必须首先为新版本安装它们。当前版本的安装程序还为您提供安装pip;默认情况下启用它,因此您已经为每个安装提供了pip。除非您将 Python 安装显式添加到 PATH,否则您不能只使用 pip。幸运的是,您也可以简单地使用py.exe 启动器:py -m pip 运行pip。例如,要为 Python 3.6 安装 Beautiful Soup,您可以运行 py -3.6 -m pip install beautifulsoup4。

【讨论】:

  • 您如何建议在我目前用于开发脚本的工作站上执行此操作?顺便说一句,我有一个 3.5.2(Windows 7 64 位)
  • 只需并排安装新版本。无需删除旧版本。拥有旧版本甚至可以帮助您将现有脚本从 Python 2 迁移到 Python 3,因此您仍然可以运行原始脚本。
  • 安装程序将为您提供一个选项来为您设置 PATH,因此您可能不需要手动执行此操作。是的,您的 IDE 需要更新。
  • 还有py -3.7-64 或py -3.7-32
  • 注意: py 是 Python Launcher for Windows。或者参见定义它的PEP 397。它不会为 Linux/Mac 安装。
【解决方案2】:

如果您要将任何 3.x.y 升级到 3.x.z(补丁)Python 版本,只需转到 Python downloads page 获取最新版本并开始安装。由于您已经在机器上安装了 Python,安装程序会提示您“立即升级”。单击该按钮,它将用新版本替换现有版本。您还必须在安装后重新启动计算机。

如果您是从 3.x 升级到 3.y(次要),则会提示您“立即安装”。在这种情况下,您不是在升级,而是在安装新版本的 Python。您的机器上可以安装多个版本。它们将位于不同的目录中。如果您的机器上有多个 Python 版本,则需要使用 py lanucher 来启动特定版本的 Python。

例如:

py -3.7

或

py -3.8

确保您的机器上安装了py launcher。如果您使用 Windows 安装程序的默认设置,它将自动安装。如果您点击安装窗口上的“自定义安装”链接,您可以随时检查它。

如果您的机器上安装了多个 Python 版本,并且您有一个项目正在使用以前版本的 Python 并使用虚拟环境,例如(venv) 您可以使用以下方式在该 venv 中升级 Python:

python -m venv --upgrade "你的虚拟环境路径"

例如,我的 ./venv 虚拟环境中有 Python 3.7,我想将 venv 升级到 Python 3.8,我会这样做

python -m venv --upgrade ./venv

【讨论】:

  • @MosheS.you 可以使用以下命令获取过期包的列表: pip list --outdated 然后通过 python -m pip install --upgrade 更新每个包>
  • 在 Windows 10 上从 3.7.2 迁移到 3.7.4(64 位)我没有看到这个,我看到的是“立即安装”,而您看到的是“立即升级”
  • 我刚从 3.7.3 移动到 3.7.5 并收到“立即升级”消息。如果我尝试从 3.7.3 升级到 3.8,那么我会得到“立即安装”。
  • 不起作用。我有 Python 3.7.4,当我运行 3.8.1 安装程序时,我别无选择“立即升级”,只有“安装”
  • @Suncatcher 你是对的,这就是我所描述的“如果你想从 3.x 升级到 3.y 那么......”部分。请阅读以上内容。
【解决方案3】:

使用 Chocolatey Windows 包管理器安装/升级 Python

假设你有 Python 2.7.16:

    C:\Windows\system32>python --version
    python2 2.7.16

...并且您想升级到(现在是当前的)3.x.y 版本。有一种使用 Windows 包管理工具并行安装 Python 3.x.y 的简单方法。

现在现代 Windows 有包管理,就像 Debian Linux 发行版有 apt-get,RedHat 有 dnf:我们可以让它为我们工作!它叫做巧克力。

什么是巧克力味?

Chocolatey 是一个可编写脚本的命令行工具,它基于 .NET 4.0 和嵌入到 Visual Studio 中的 nuget 包管理器。

如果您想了解 Chocolatey 以及为什么要使用它,这里的一些人可能会觉得这特别有用,请转到 https://chocolatey.org/docs/why

安装 Chocolatey

​​>

要获得 Chocolatey 包管理器,您需要遵循https://chocolatey.org/docs/installation#installing-chocolatey 中描述的流程,

我会在这里为你总结一下。基本上有两种选择:使用 cmd 提示符,或使用 PowerShell 提示符。

CMD 提示 Chocolatey 安装

启动管理命令提示符。在 Windows 10 上,执行此操作:

  • Windows+R
  • 键入 cmd
  • 按 ctrl+shift+Enter

如果您没有系统管理员权限,请转至Chocolatey website。您可能并不完全不走运,并且可以执行有限的本地安装,但我不会在这里介绍。

  • 将下面的字符串复制到命令提示符中,然后输入 Enter:
@"%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" -NoProfile -InputFormat None -ExecutionPolicy Bypass -Command "iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))" && SET "PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin"

Chocolatey 将为您下载并安装如下:

Getting latest version of the Chocolatey package for download.
Getting Chocolatey from https://chocolatey.org/api/v2/package/chocolatey/0.10.11.
Downloading 7-Zip commandline tool prior to extraction.
Extracting C:\Users\blahblahblah\AppData\Local\Temp\chocolatey\chocInstall\chocolatey.zip to C:\Users\blahblahblah\AppData\Local\Temp\chocolatey\chocInstall...
Installing chocolatey on this machine
Creating ChocolateyInstall as an environment variable (targeting 'Machine')
  Setting ChocolateyInstall to 'C:\ProgramData\chocolatey'
WARNING: It's very likely you will need to close and reopen your shell
  before you can use choco.
Restricting write permissions to Administrators
We are setting up the Chocolatey package repository.
The packages themselves go to 'C:\ProgramData\chocolatey\lib'
  (i.e. C:\ProgramData\chocolatey\lib\yourPackageName).
A shim file for the command line goes to 'C:\ProgramData\chocolatey\bin'
  and points to an executable in 'C:\ProgramData\chocolatey\lib\yourPackageName'.

Creating Chocolatey folders if they do not already exist.

WARNING: You can safely ignore errors related to missing log files when
  upgrading from a version of Chocolatey less than 0.9.9.
  'Batch file could not be found' is also safe to ignore.
  'The system cannot find the file specified' - also safe.
chocolatey.nupkg file not installed in lib.
 Attempting to locate it from bootstrapper.
PATH environment variable does not have C:\ProgramData\chocolatey\bin in it. Adding...
WARNING: Not setting tab completion: Profile file does not exist at 'C:\Users\blahblahblah\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1'.
Chocolatey (choco.exe) is now ready.
You can call choco from anywhere, command line or powershell by typing choco.
Run choco /? for a list of functions.
You may need to shut down and restart powershell and/or consoles
 first prior to using choco.
Ensuring chocolatey commands are on the path
Ensuring chocolatey.nupkg is in the lib folder

退出 CMD 提示符或键入以下命令以重新加载环境变量:

refreshenv

PowerShell Chocolatey 安装

如果您更喜欢 PowerShell 而不是 cmd 提示符,您可以直接从那里执行此操作,但是您必须告诉 PowerShell 使用正确的脚本执行策略运行才能使其工作。在 Windows 10 上,我发现执行此操作的最简单方法是在 Windows 按钮旁边的 Cortana 搜索栏中键入以下内容:

PowerShell.exe

接下来,在弹出的菜单中右键单击“最佳匹配”选项,然后选择“以管理员身份运行”

现在您在 PowerShell 中,希望以管理员权限运行,执行以下命令来安装 Chocolatey:

Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))

PowerShell 将为您下载 Chocolatey 并启动安装。只需片刻。它看起来完全像 CMD 安装,也许保存一些花哨的彩色文本。

退出 PowerShell 或键入以下命令重新加载环境变量:

refreshenv

升级 Python

无论你使用 PowerShell 还是 cmd 提示符,choco 命令都是一样的。使用上述说明启动您的最爱。我将使用管理员 cmd 提示符:

C:\WINDOWS\system32>choco upgrade python -y

基本上,chocolatey 会告诉您“嘿,Python 没有安装”,因为您来自 2.7.x,它会将 2.7 版本视为完全独立的。 仅会为您提供最新版本 3.x.y(在撰写本文时为 3.7.2,但几个月后会发生变化):

Chocolatey v0.10.11
Upgrading the following packages:
python
By upgrading you accept licenses for the packages.
python is not installed. Installing...

python3 v3.x.y [Approved]
python3 package files upgrade completed. Performing other installation steps.
Installing 64-bit python3...
python3 has been installed.
Installed to: 'C:\Python37' 
  python3 can be automatically uninstalled.
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The upgrade of python3 was successful.
  Software installed as 'exe', install location is likely default.

python v3.x.y [Approved]
python package files upgrade completed. Performing other installation steps.
 The upgrade of python was successful.
  Software install location not explicitly set, could be in package or
  default install location if installer.

Chocolatey upgraded 2/2 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).

要么退出 cmd/Powershell 提示符并重新输入,或者使用 refreshenv 然后键入 py --version

C:\Windows\System32>refreshenv
Refreshing environment variables from registry for cmd.exe. Please wait...Finished..

C:\Windows\system32>py --version
Python 3.7.2

请注意,当您在命令行中键入 Python 时,最新的 Python 安装现在将接管。您可以使用以下命令运行任一版本:

py -2
Python 2.7.16 (v2.7.16:413a49145e, Mar  4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()

C:\>py -3
Python 3.7.2 (tags/v3.7.2:9a3ffc0492, Dec 23 2018, 23:09:28) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>exit()
C:\>

从这里我建议您使用 Python pip 实用程序来安装您需要的任何软件包。例如,假设您想安装 Flask。下面的命令先升级pip,再安装Flask

C:\>py -3 -m pip install --upgrade pip
Collecting pip
  Downloading https://files.pythonhosted.org/packages/d8/f3/413bab4ff08e1fc4828dfc59996d721917df8e8583ea85385d51125dceff/pip-19.0.3-py2.py3-none-any.whl (1.4MB)
    100% |████████████████████████████████| 1.4MB 1.6MB/s
Installing collected packages: pip
  Found existing installation: pip 18.1
    Uninstalling pip-18.1:
      Successfully uninstalled pip-18.1
Successfully installed pip-19.0.3

c:\>py -3 -m pip install Flask

...会成功的。玩 Python 快乐!

【讨论】:

  • 答案的简短版本是安装 Chocolatey,然后从命令提示符处 refreshenv,然后执行 choco install python,它将安装最新版本的 python。在 cmd 中再次执行 refreshenv,您应该从 cmd 运行最新的 python。
  • 在 CMD 和 POWERSHELL 中出现此错误 使用“1”参数调用“DownloadString”异常:“底层连接已关闭:发送时发生意外错误。”在 line:1 char:104 + Set-ExecutionPolicy Bypass -Scope Process -Force; iex ((New-Object System.Net.WebClient).DownloadString chocolatey.org/install.ps1')) + CategoryInfo : NotSpecified: (:) [], MethodInvocationException + FullyQualifiedErrorId : DotNetMethodException
【解决方案4】:

Python 2.x 和 Python 3.x 是不同的。如果您想下载较新版本的 Python 2,只需下载并安装较新版本即可。

如果要安装 Python 3,可以单独安装 Python 3,然后在控制面板 > 所有控制面板项 > 系统 > 高级系统设置 > 环境变量中将 Python 2.x 的路径更改为 Python 3.x。

【讨论】:

  • 我更喜欢完全删除 Python 2.7.11,因为我不打算支持它。所以我应该完全删除它。正确的 ? “程序和功能”没有显示 Python,所以我不知道如何删除它。我应该使用 pip,以及如何使用?只删除 Python 文件夹是个好主意吗?与它一起安装的所有旧软件包(如果有的话),我该如何卸载它们?
  • @MosheS。我不认为它真的需要那么多空间,但如果你确实想清理,那么一定要清理。它们应该都在同一个文件夹中,您可以从控制面板程序和功能中卸载。我的 Python 2.7 和 3.4 都在里面。从那里卸载将删除所有软件包如果您真的找不到它,您可以尝试删除整个文件夹。当您下载 Python 3 时,如果它不起作用,请按照我上面的回答编辑路径,如果有的话,这很可能是主要问题。
【解决方案5】:

2019 年,您可以使用chocolatey 进行安装。打开你的cmd或者powershell,输入“choco install python”。

【讨论】:

    【解决方案6】:

    只需安装python最新版本的安装程序,它会自动检测你的python版本,并会说升级python并开始升级

    【讨论】:

      【解决方案7】:

      对我来说,一种快速而轻松的方法是执行以下操作:

      1. 在我受影响的环境中执行pip freeze > requirements.txt(或您想要备份您的要求的任何方法)
      2. 删除旧版本的 Python(在我的例子中是 3.8)
      3. 删除关联的环境
      4. 安装新版本(在我的情况下为 3.9.5)
      5. 重新创建我的环境 python -m venv venv 或您希望的任何方式
      6. 重新安装我的插件/应用程序pip install -r requirements.txt 或您希望的任何方式

      【讨论】:

        【解决方案8】:

        我能够使用以下命令执行 PowerShell,并且 python 升级没有问题。 python -m pip install --upgrade pip 请看图

        【讨论】:

        • 请正确格式化您的答案。另外,我看到您忘记在答案中添加图像。如果可能,请添加图片和工作证明,它可能有助于更好地回答。
        【解决方案9】:

        您可以使用pyenv。它让您可以轻松地在所有版本的 python 之间切换。

        【讨论】:

        • 欢迎来到 SO,请考虑在您的答案中提供更多细节
        【解决方案10】:

        python -m pip install --upgrade pip

        【讨论】:

        • 那个命令不是升级python而是升级pip的版本。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-15
        • 2017-06-28
        • 1970-01-01
        • 2019-01-28
        • 1970-01-01
        • 2020-01-16
        相关资源
        最近更新 更多