如何更新Python?

Col*_*ice 122 python installation upgrade windows-7-x64 python-2.7

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

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

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

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

(Win7 x64,32位Python)

Mar*_*ski 102

更新:2018-07-06

这篇文章现已近5岁!Python-2.7将在2020年停止从python.org接收官方更新.此外,Python-3.7已经发布.查看Python-Future,了解如何使Python-2代码与Python-3兼容.为了更新conda,文档现在建议conda update --all在每个conda环境中使用以更新该版本的所有包和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
  • 通过禁用更改Windows 和注册表的选项,AnacondaMiniConda可以与现有的Python安装一起使用PATH.提取后,conda在您的binPyPI中创建一个符号链接或从PyPI安装conda.然后在Anaconda/Miniconda根bin文件夹中创建另一个名为conda-activateto的符号链接activate.现在Anaconda/Miniconda就像Ruby RVM一样.只需使用conda-activate root启用Anaconda/Miniconda.
  • 便携式Python不再被开发或维护.

TL; DR

  • 使用Anaconda或miniconda,然后执行conda update --all以保持每个conda环境的更新,
  • 官方Python的相同主要版本(例如 2.7.5),只需安装旧版本(例如 2.7.4),
  • 官方Python的不同主要版本(例如 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永远不需要.
    • 如果从源代码构建,那么你应该构建一个新的,干净的目录,然后在通过所有测试后指向新构建的路径,并且你确信它已经成功构建,但你可能希望保持旧的因为从源头构建可能偶尔会出现问题.请参阅我的指南,了解如何在Windows 7上使用SDK 7.0构建Python x64.
    • 如果从Python(x,y)等发行版安装,请访问他们的网站.Python(x,y)已被放弃. 我相信可以使用包管理器在Python(x,y)中处理更新,但更新也包含在他们的网站上.我找不到具体的参考,所以也许其他人可以对此说话.与ActiveState和Enthought类似,Python(x,y)明确指出它与其他Python安装不兼容:

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

    • Enthought雨棚采用了微星将安装到任何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命令更新Anaconda:

      conda update --all
      
      Run Code Online (Sandbox Code Playgroud)

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

      因此,可以在不中断现有Python安装的情况下安装Anaconda/Miniconda,具体取决于它的安装方式和安装期间选择的选项.如果.exe使用安装程序和选项来改变的Windows PATH和注册表都没有禁用,则任何以前的Python的安装将被禁用,但只需卸载蟒蛇/ Miniconda安装应恢复原来的Python安装,也许除了Windows注册表Python\PythonCore键.

      蟒蛇/ Miniconda使得下面的注册表编辑无论安装选项:HKCU\Software\Python\ContinuumAnalytics\使用下列按键:Help,InstallPath,ModulesPythonPath- Python官方注册过这些按键,但下Python\PythonCore.此外,还为Anaconda\Miniconda注册了卸载信息.除非您在安装过程中选择"注册Windows"选项,否则它不会创建PythonCore,因此像Visual Studio的Python工具之类的集成不会自动看到Anaconda/Miniconda.如果注册蟒蛇/ Miniconda选项激活,那么我认为您现有的Python Windows注册表项将被改变和卸载可能不会恢复它们.

    • 我认为,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,那么并排安装不同的版本就可以了.您必须选择与*.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.
  3. 如果OP没有更新Python,而只是更新软件包,他们可能希望查看virtualenv以保持特定于其开发项目的不同版本的软件包.Pip也是更新包的好工具.如果包使用二进制安装程序,我通常会在安装新包之前卸载旧包.

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

  • 我会两个都用.如果你在MS Windows上,你将进入你的根文件夹`C:\ Python27`和`C:\ Python33`,如果你在Mac上,你会看到`/Library/Frameworks/Python/Versions/2.7 .x`和`/ Library/Frameworks/Python/Versions/3.3.x`如果你在Linux上,你可能已经安装了.传统是使用Python-2.7和symlink Python-3.3的二进制文件到`python33`.另请参阅[Python2orPython3](https://wiki.python.org/moin/Python2orPython3)和[Python 2 vs Python 3](http://stackoverflow.com/questions/442352/python-2-vs-python-3 -and-教程).我个人懒得切换到3.3. (7认同)
  • 嘿马克,我有一个新手问题。您认为从 2.7.x 升级到 3.3.x 真的很重要吗?我开始使用 python 并安装了旧版本,但从一开始我就想学习最新版本(除非只有很小的差异)。您对此有何看法?谢谢你的帮助。 (2认同)
  • 谢谢你的详细解答!使用2.7,当一个是32位而一个是64位时,安装过旧不起作用.我在"程序和功能"中输入了两个条目,两个条目都指向C:\ Python27.你是否愿意添加你的答案,人们应该只用32和64覆盖32覆盖?谢谢! (2认同)

Wei*_*Yen 5

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

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

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


iva*_*eev 5

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

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

(请参阅2.x 的负责代码 3.x 的

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

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