如何更新Python?

我已经从2012年初安装了2.7版本。我无法find任何共识,是否应该完全卸载并擦除此版本之前,将最新版本。

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

我已经看到了一个特殊的安装/升级过程,使用Python安装的“分段”方法,保持不同的版本分开,但function。 不知道这是否是事实上的标准。

我也想知道Revo是否过于热情,可能会导致清除仍然需要的残余物(如环境/pathvariables)的问题。

(Win7 x64,32位Python)

更新:2017-03-34

自2015年6月以来,Python(x,y)没有更新,所以我认为可以放弃它。

更新 :2016-11-11

正如下面的@cxw注释 ,这些答案是针对相同的位版本,而我所说的位版本是指64位与32位。 例如,这些答案将适用于从64位Python-2.7.10更新到64位Python-2.7.11, 相同的位版本。 虽然可以将两个不同的Python版本安装在一起,但是这需要一些黑客攻击,所以我会为读者保存这个练习。 如果你不想破解,我build议如果切换位版本,首先删除其他位版本。

更新 :2016-05-16

  • 通过禁用更改Windows PATH和registry的选项, Anaconda和MiniConda可以与现有的Python安装一起使用。 解压缩后,创build一个符号链接到您的bin或者从PyPI安装conda。 然后创build另一个名为conda-activate符号链接,在Anaconda / Miniconda root bin文件夹中activate 。 现在Anaconda / Miniconda就像Ruby RVM一样。 只需使用conda-activate root启用Anaconda / Miniconda。
  • 可移植的Python不再被开发或维护。

TL; DR

  • 相同的主要版本例如 2.7.5),只是安装在旧的( 2.7.4),
  • 不同的主要版本 3.3),与旧的,设置path/关联指向显性( 2.7),其他( 在BASH $ ln /c/Python33/python.exe python3 )的快捷方式$ ln /c/Python33/python.exe python3

答案取决于:

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

    • 如果从官方的Python网站使用MSI安装程序 ,只需安装在旧版本,安装程序将发出警告,它将删除和replace旧版本; 确认旧版本已被新版本replace之前和之后,在“控制面板”中查看“安装的程序” 新版本的2.7.x是向后兼容的,所以这是完全安全的,因此恕我直言多个版本的2.7.x应该没有必要。
    • 如果从源代码构build,那么你应该build立一个新的,干净的目录,一旦通过所有的testing,然后指向新的构buildpath,并确信它已经成功构build,但是你可能希望保留旧的周围build设,因为从源头build设可能偶尔有问题。 请参阅我的指南,了解如何使用SDK 7.0在Windows 7上构buildPython x64 。
    • 如果从Python(x,y)等发行版进行安装,请参阅他们的网站。 Python(x,y)已经被放弃了。 我相信更新可以在Python(x,y)中通过它们的包pipe理器进行处理,但更新也包含在他们的网站上 。 我找不到具体的参考,所以也许别人可以说这个。 类似于ActiveState,可能Enthought,Python(x,y)明确指出它与其他Python安装不兼容:

      build议在安装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构build)。 在安装ActivePython 2.7之前卸载其他Python 2.7安装。

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

       conda update conda conda update anaconda 

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

      Anaconda可能会破坏其他Python安装。 安装使用MSI安装程序。 [ 更新 :2016-05-16] Anaconda和Miniconda现在使用.exe安装程序,并提供禁用Windows PATH和registry更改的选项。

      因此,Anaconda / Miniconda可以在不中断现有Python安装的情况下进行安装,具体取决于安装方式以及安装期间select的选项。 如果使用.exe安装程序,并且禁用更改Windows PATH和registry的选项,则以前的任何Python安装都将被禁用 ,但是只需卸载Anaconda / Miniconda安装应该还原原始的Python安装,除了WindowsregistryPython\PythonCore键。

      Anaconda / Miniconda进行下列registry编辑,无论安装选项如何: HKCU\Software\Python\ContinuumAnalytics\ ,包括以下关键字: HelpInstallPathModulesPythonPath – 官方Python也注册了这些键,但在Python\PythonCore 。 也为Anaconda \ Miniconda注册卸载信息。 除非在安装过程中select“注册Windows”选项,否则不会创buildPythonCore ,所以像Visual Studio Python Tools这样的集成不会自动查看Anaconda / Miniconda。 如果注册Anaconda / Miniconda的选项启用,那么我认为您现有的Python Windowsregistry项将被更改,卸载可能无法恢复它们。

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

    • C:\ Python33 for 3.3.x(latest 2013-07-29)
    • C:\ Python32 for 3.2.x
    • &C。
    • C:\ Python27 for 2.7.x(latest 2013-07-29)
    • C:\ Python26 for 2.6.x
    • &C。
  3. 如果OP没有更新Python,而只是更新软件包,他们可能希望查看virtualenv ,以便将与开发项目相关的不同版本的软件包分开。 Pip也是更新软件包的好工具。 如果软件包使用二进制安装程序,我通常会在安装新软件包之前卸载旧的软件包。

我希望这可以消除任何混乱。

最好的解决scheme是在多个path中安装不同的Python版本。

例如。 C:\ Python27为2.7,C:\ Python33为3.3。

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

我总是刚刚安装了新版本,从来没有任何问题。 请确保您的path已更新为指向新版本。