如何更新 Python?

我从2012年初就安装了2.7版本。我找不到任何共识是否我应该完全卸载和擦除这个版本之前,把最新的版本。

“软”-删除旧版本? 硬删除/擦除旧版本? 安装在顶部?

我曾经见过一个特殊的安装/升级过程,它使用 Python 安装的“分段”方法,将不同的版本分离开来,但是功能性的。不知道这是不是标准的,事实上的方式。

我还想知道 Revo 是否过于热心,可能会导致清除仍然需要的残留物(如环境/PATH 变量)的问题。

(Win7 x64,32位 Python)

497141 次浏览

我总是在顶部安装新版本,从来没有出现过任何问题。请确保您的路径已更新为指向新版本。

最好的解决方案是在多个路径中安装不同的 Python 版本。

例如,C: Python 27为2.7,C: Python 33为3.3。

阅读更多信息: 如何在 Windows 上运行多个 Python 版本

更新 : 2018-07-06

这个帖子现在已经快5岁了!到2020年,Python-2.7将不再接收来自 python.org 的官方更新.还有 Python-3.7已经发布了。查看 巨蟒-未来,了解如何使 Python-2代码与 Python-3兼容。为了更新 conda,文档现在建议在每个 conda 环境中使用 conda update --all来更新该版本的所有包和 Python 可执行文件。另外,由于他们改名为 Anaconda,我不知道 Windows 注册表项是否仍然相同。

更新 : 2017-03-24

自2015年6月以来,Python (x,y)一直没有更新,所以我认为可以有把握地假设它已经被放弃了。

更新 : 2016-11-11

作为 @ cxw 评论如下,这些答案适用于相同的位版本,所谓位版本,我指的是64位对32位。例如,这些答案适用于从64位 Python-2.7.10更新到64位 Python-2.7.11,也就是说: 一样位版本。虽然可以同时安装两个不同的比特版本的 Python,但是需要进行一些修改,所以我将把这个练习留给读者。如果你不想黑客,我建议如果切换位版本,删除其他位版本第一。

更新 : 2016-05-16

DR

  • 使用 蟒蛇或者迷你蟒蛇,然后执行 conda update --all来保持每个 conda 环境的更新,
  • 同样 少校版本的 正式的巨蟒 (例如:。2.7.5) ,只需安装旧版本(例如:。2.7.4) ,
  • 不同 少校版本的 正式的巨蟒 (例如:。3.3) ,与旧版本并排安装,设置路径/关联指向优势(例如:。2.7) ,快捷方式到其他(BASH $ ln /c/Python33/python.exe python3中的 例如:。)。

答案取决于:

  1. 如果 OP 有2.7. x 并且想要安装更新的2.7. x 版本,那么

    • 如果使用 Python 官方网站中的 MSI 安装程序,只需在旧版本上安装,安装程序就会发出警告,它将删除和替换旧版本; 在“控制面板”中查看“已安装的程序”之前和之后确认旧版本已被新版本替换; 较新版本的2.7. x 向后兼容,所以这是完全安全的,因此恕我直言,2.7. x 的多个版本应该永远不需要。
    • 如果从源代码构建,那么您可能应该在一个新的、干净的目录中构建,然后在新的构建通过所有测试并且您确信它已经成功构建之后,指向新的构建,但是您可能希望保留旧的构建,因为从源代码构建可能偶尔会出现问题。看我的 使用 SDK 7.0在 Windows 7上构建 Python x64的指南
    • 如果安装从一个发行版,如 Python (x,y),看到他们的网站。我相信更新可以在 Python (x,y)中通过它们的包管理器处理,但是在 更新也包括在他们的网站上中。我找不到一个具体的参考,所以也许其他人可以谈论这一点。与 ActiveState (可能还有 Enthought)类似,Python (x,y)明确表示它与 Python 的其他安装不兼容:

      建议在安装 Python (x,y)之前卸载任何其他 Python 发行版

    • Enthought Canopy 使用 MSI,将分别为所有用户或每个用户安装到 Program Files\Enthoughthome\AppData\Local\Enthought\Canopy\App中。使用内置的更新工具更新较新的安装。看他们的 文件
    • ActiveState 也使用 MSI,这样新的安装可以安装在旧的安装之上。

      其他 Python 2.7安装在 Windows 上,ActivePython 2.7不能与其他 Python 2.7安装共存(例如,从 Python.org 构建的 Python 2.7)。在安装 ActivePython 2.7之前卸载任何其他 Python 2.7安装。

    • Sage 建议您将其安装到虚拟机中,并提供一个可用于此目的的 Oracle VirtualBox 映像文件。通过发出 sage -upgrade命令在内部处理升级。
    • 水蟒可以是 通过使用 conda命令更新:

      conda update --all
      

      Anaconda/Miniconda 允许用户创建 环境来管理多个 Python 版本,包括 Python-2.6、2.7、3.3、3.4和3.5。根 Anaconda/Miniconda 安装目前基于 Python-2.7或 Python-3.5。

      Anaconda 可能会中断任何其他 Python 安装。 [ 更新:2016-05-16] < em > Anaconda 和 Miniconda 现在使用 .exe安装程序,并提供禁用 Windows PATH和注册表更改的选项。

      因此,可以在不破坏现有 Python 安装的情况下安装 Anaconda/Miniconda,具体取决于安装方式和安装过程中选择的选项。如果使用了 .exe安装程序并且禁用了修改 Windows PATH和 Registry 的选项,那么任何以前的 Python 安装 将被关闭,但是只要卸载 Anaconda/Miniconda 安装程序就可以恢复原来的 Python 安装,也许除了 Windows Registry Python\PythonCore键之外。

      无论安装选项如何,Anaconda/Miniconda 都会进行以下注册表编辑: 使用以下键值的 HKCU\Software\Python\ContinuumAnalytics\: HelpInstallPathModulesPythonPath——官方的 Python 也会注册这些键值,但是是在 Python\PythonCore下。还有注册了 Anaconda Miniconda 的卸载信息。除非在安装过程中选择“ Register with Windows”选项,否则它不会创建 PythonCore,所以 Python Tools for Visual Studio 这样的集成不会自动看到 Anaconda/Miniconda。如果启用了注册阿纳康达/Miniconda 的选项,那么我认为你现有的 Python Windows 注册表密钥将被更改,卸载可能不会恢复它们。

    • 我认为 WinPython 更新可以通过 控制面板处理。
    • PortablePython 不再被开发。它没有更新方法。可以将更新解压缩到一个新的目录中,然后将 App\lib\site-packagesApp\Scripts复制到新的安装中,但是如果这不起作用,那么可能需要重新安装所有的包。使用 pip list查看安装了哪些软件包及其版本。其中一些是由 PortablePython 安装的。如果 pip 没有安装,使用 easy_install pip安装它。
  2. 如果 OP 有2.7. x 并且想要安装不同的版本,例如:。 < = 2.6. x 或 > = 3.x.x,那么并排安装不同的版本就可以了。您必须选择哪个版本的 Python (如果有的话)与 *.py文件关联,以及希望在路径上关联哪个版本,不过如果使用 BASH,应该能够设置具有不同路径的 shell。AFAIK 2.7. x 是向后兼容2.6. x 的,因此 IMHO 并行安装是不必要的,但 Python-3.x.x 不是向后兼容的,所以我的建议是把 Python-2.7放在你的路径上,通过创建一个快捷方式到它的可执行文件 python3(这是 Linux 上常见的设置) ,让 Python-3成为一个可选版本。Windows 上的官方 Python 默认安装路径是

    • C: Python 33 for 3.3.x (best 2013-07-29)
    • C: Python 32 for 3.2. x
    • 等等。
    • C: Python 27 for 2.7.x (best 2013-07-29)
    • C: Python 26 for 2.6. x
    • 等等。
  3. 如果 OP 不是更新 Python,而仅仅是更新包,那么他们可能希望研究 虚拟世界,以便将特定于其开发项目的不同版本的包分开。皮普也是更新软件包的一个很好的工具。如果软件包使用二进制安装程序,我通常会在安装新软件包之前卸载旧软件包。

希望这能解释清楚。

  • 官方的 Python.msi 安装程序旨在取代:

    • 任何以前的微版本(在 X.y.z中,Z是“微”) ,因为它们保证向后兼容和二进制兼容
    • 带有任何微版本的“快照”(从源代码构建)安装
  • 快照安装程序旨在用较低的微版本替换任何快照。

(见 2. x 的负责代码对于3。 x)

任何其他版本不一定兼容,因此与现有版本一起安装。如果您希望卸载旧版本,则需要手动卸载。同时卸载所有第三方模块:

  • 如果您从 bdist_wininst软件包(Windows.exe)中安装了任何模块,请在卸载版本之前卸载它们,否则卸载程序可能无法正常工作,如果它具有自定义逻辑
  • 安装在 Lib\site-packages中的 setuptools/pip模块可以在事后删除
  • 您为每个用户安装的包(如果有的话)驻留在 %APPDATA%/Python/PythonXY/site-packages中,同样可以被删除