首页 文章

如何更新Python?

提问于
浏览
117

我从2012年初开始安装2.7版本 . 在推出最新版本之前,我没有找到任何关于是否应该完全卸载并擦除此版本的共识 .

“软” - 旧版本?难以移除/擦除旧版本?安装在顶部?

我已经在某处使用Python安装的“分段”方法看到了一个特殊的安装/升级过程,使不同版本保持独立和分离,但功能齐全 . 不确定这是否是标准的,事实上的方式 .

我也想知道Revo是否过于热心并且可能导致消除仍然需要的残余物的问题,例如环境/ PATH变量 .

(Win7 x64,32位Python)

4 回答

  • 4

    UPDATE :2018-07-06
    这篇文章现已近5岁! Python-2.7 will stop receiving official updates from python.org in 2020 . 另外,Python-3.7 has been released . 查看Python-Future,了解如何使Python-2代码与Python-3兼容 . 为了更新conda,文档现在建议在每个conda环境中使用 conda update --all 来更新该版本的所有包和Python可执行文件 . 此外,由于他们将名称更改为Anaconda,我不知道Windows注册表项是否仍然相同 .
    UPDATE :2017-03-24
    自2015年6月以来,Python(x,y)一直没有更新,所以我认为假设它已被放弃是安全的 .
    UPDATE :2016-11-11
    @cxw comments below,这些答案是针对相同的位版本,而位版本的意思是64位与32位 . 例如,这些答案适用于从64位Python-2.7.10更新到64位Python-2.7.11,即: same 位版本 . 虽然可以将两个不同位版本的Python一起安装,但它需要一些黑客攻击,所以我想要破解,我建议如果切换位版本,首先删除其他位版本 .
    UPDATES :2016-05-16
    通过禁用更改Windows PATH 和注册表的选项,

    • AnacondaMiniConda可与现有Python安装一起使用 . 提取后,在 bin 中创建一个符号链接到 conda 或从PyPI安装conda . 然后在Anaconda / Miniconda根bin文件夹中创建另一个名为 conda-activate 的符号链接到 activate . 现在Anaconda / Miniconda就像Ruby RVM一样 . 只需使用 conda-activate root 即可启用Anaconda / Miniconda .

    • 不再开发或维护便携式Python .

    TL; DR

    • 使用Anaconda or miniconda,然后执行 conda update --all 以保持每个conda环境的更新,

    • same major version of official Python (例如2.7.5),只需安装旧版(例如2.7.4),

    • different major version of official Python (例如3.3),与旧的设置路径/关联并排安装以指向显性(例如2.7),快捷方式(例如在BASH $ ln /c/Python33/python.exe python3 中) .

    答案取决于:

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

    • 如果在official Python website中使用MSI installer,只需安装旧版本,安装程序将发出警告,表示它将删除并替换旧版本;在确认旧版本已被新版本替换之前和之后"control panel"中查看"installed programs";较新版本的2.7.x是向后兼容的,因此这是完全安全的,因此恕我直言的2.7.x的多个版本永远不需要 .

    • 如果从源代码构建,那么你应该构建一个新的,干净的目录,然后在通过所有测试后指向新构建的路径,并且你确信它已经成功构建,但你可能希望保留因为从源头构建可能偶尔会出现问题 . 看我的guide for building Python x64 on Windows 7 with SDK 7.0 .

    • 如果从Python(x,y)等发行版安装,请参阅他们的网站 . Python(x,y) has been abandoned. 我相信可以使用包管理器在Python(x,y)中处理更新,但更新也包含在他们的网站上 . 我找不到具体的参考,所以也许其他人可以对此说话 . 与ActiveState和Enthought类似,Python(x,y)明确指出它与其他Python安装不兼容:

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

    • Enthought Canopy使用MSI,将分别为所有用户或每个用户安装到 Program Files\Enthoughthome\AppData\Local\Enthought\Canopy\App . 使用内置更新工具更新较新的安装 . 看他们的documentation .

    • ActiveState也使用MSI,因此可以在较旧的安装之上安装较新的安装 . 看他们的installation notes .

    其他Python 2.7安装在Windows上,ActivePython 2.7无法与其他版本共存Python 2.7安装(例如,python.org的Python 2.7版本) . 在安装ActivePython 2.7之前卸载任何其他Python 2.7安装 .

    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安装 . 安装使用MSI安装程序 . [ UPDATE :2016-05-16] Anaconda和Miniconda现在使用 .exe 安装程序并提供禁用Windows PATH 和注册表更改的选项 .

    因此,可以在不中断现有Python安装的情况下安装Anaconda / Miniconda,具体取决于安装方式和安装期间选择的选项 . 如果使用 .exe 安装程序并且未禁用更改Windows PATH 和注册表的选项,则将禁用任何以前的Python安装,但只需卸载Anaconda / Miniconda安装即可恢复原始Python安装,但Windows Registry Python\PythonCore 键除外 .

    Anaconda / Miniconda进行以下注册表编辑,无论安装选项如何: HKCU\Software\Python\ContinuumAnalytics\ ,并带有以下键: HelpInstallPathModulesPythonPath - 官方Python也注册这些键,但在 Python\PythonCore 下 . 此外,还为Anaconda \ Miniconda注册了卸载信息 . 除非您在安装期间选择"Register with Windows"选项,否则它不会创建 PythonCore ,因此像Visual Studio的Python工具之类的集合不会自动看到Anaconda / Miniconda . 如果启用了注册Anaconda / Miniconda的选项,那么我认为您现有的Python Windows注册表项将被更改,卸载可能无法恢复它们 .

    我认为

    • WinPython更新可以通过WinPython Control Panel来处理 .

    • PortablePythonno longer being developed . 它没有更新方法 . 可能更新可以解压缩到一个新目录,然后可以将App \ lib \ site-packages和App \ Scripts复制到新安装,但如果这不起作用,则可能需要重新安装所有软件包 . 使用pip list查看已安装的软件包及其版本 . 一些是由PortablePython安装的 . 如果没有安装,请使用easy_install pip安装pip .

    • 如果OP具有2.7.x并且想要安装不同的版本,例如<= 2.6.x或> = 3.x.x,然后并排安装不同版本就可以了 . 您必须选择与 *.py 文件关联的Python版本(如果有)以及您希望在路径中使用哪个版本,但如果您使用BASH,则应该能够设置具有不同路径的shell . AFAIK 2.7.x向后兼容2.6.x,因此恕我直言安装并不是必需的,但Python-3.xx不向后兼容,所以我的建议是将Python-2.7放在你的路径上并拥有Python-3是一个可选版本,通过创建一个名为python3的可执行文件的快捷方式(这是Linux上的常见设置) . Windows上的官方Python默认安装路径是

    • C:\ Python33 for 3.3.x(最新2013-07-29)

    • C:\ Python32 for 3.2.x.

    • &c .

    • C:\ Python27 for 2.7.x(最新2013-07-29)

    • C:\ Python26 for 2.6.x.

    • &c .

    • 如果OP没有更新Python,只是更新软件包,他们可能希望查看virtualenv以保持特定于其开发项目的不同版本的软件包 . Pip也是更新包的好工具 . 如果包使用二进制安装程序,我通常会在安装新包之前卸载旧包 .

    我希望这可以解决任何困惑 .

  • 95

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

    例如 . C:\ Python27 for 2.7,C:\ Python33 for 3.3 .

    阅读本文了解更多信息:How to run multiple Python versions on Windows

  • 1
    • 官方Python .msi安装程序旨在替换:

    • 任何以前的微版本(在x.y.z中,z是"micro")因为它们保证是向后兼容的并且是二进制兼容的

    • a "snapshot"(源自内置)安装与任何微型版本

    • 快照安装程序旨在替换任何具有较低微版本的快照 .

    (见responsible code for 2.xfor 3.x

    任何其他版本不一定兼容,因此与现有版本一起安装 . 如果要卸载旧版本,则需要手动执行此操作 . 并卸载您拥有的任何第三方模块:

    • 如果您安装了 bdist_wininst 软件包中的任何模块(Windows .exe s),请在卸载版本之前将其卸载,否则如果卸载程序具有自定义逻辑,则卸载程序可能无法正常运行
      setuptools / pip 一起安装的
    • 模块(位于 Lib\site-packages )之后可以删除
      每个用户安装的
    • 个软件包(如果有)驻留在 %APPDATA%/Python/PythonXY/site-packages 中,同样可以删除
  • 4

    我一直只是安装新版本,从来没有任何问题 . 请确保您的路径已更新为指向新版本 .

相关问题