问题:如何更新Python?
我从2012年初开始安装了2.7版。对于在安装最新版本之前是否应该完全卸载并擦除此版本,我无法达成共识。
“软”删除旧版本?硬删除/清除旧版本?安装在顶部?
我在某处看到了一个特殊的安装/升级过程,该过程使用Python安装的“分段”方法,将不同的版本分开并保持功能。不知道这是否是事实上的标准方法。
我还想知道Revo是否太过热情,是否可能导致清除仍然需要的残留物(例如环境/ PATH变量)而引起问题。
(Win7 x64,32位Python)
回答 0
这个帖子现在已经快5年了!2020年,Python-2.7将停止从python.org接收官方更新。此外,还发布了Python-3.7。查看Python-Future,了解如何使您的Python-2代码与Python-3兼容。为了更新conda,文档现在建议conda update --all
在您的每个conda环境中使用更新该版本的所有软件包和Python可执行文件。另外,由于它们将名称更改为Anaconda,所以我不知道Windows注册表项是否仍然相同。
自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 和注册表的选项,Anaconda和MiniConda可以与现有的Python安装一起使用
PATH
。解压后,conda
在您的bin
PyPI中创建符号链接到或安装conda。然后创建另一个名为符号链接conda-activate
到activate
在巨蟒/ Miniconda根bin文件夹。现在,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
)。
答案取决于:
如果OP具有2.7.x,并且要安装较新的2.7.x,则
- 如果使用MSI安装程序从Python官方网站上,只要安装了旧版本,安装程序会发出警告,它会删除并替换旧版本; 前后检查“控制面板”中的“已安装程序”,以确认旧版本已被新版本替换;2.7.x的较新版本向后兼容,因此这是完全安全的,因此,IMHO 2.7.x的多个版本永远不需要。
- 如果是从源代码构建的,那么您可能应该构建在一个全新的,干净的目录中,然后在通过所有测试并且确信它已成功构建后,将路径指向新的构建,但是您可能希望保留旧的进行构建,因为从源构建可能偶尔会遇到问题。请参阅我的指南,以在带有SDK 7.0的Windows 7上构建Python x64。
- 如果从诸如Python(x,y)之类的发行版进行安装,请访问其网站。Python(x,y)已被放弃。
我相信可以使用其包管理器在Python(x,y)内处理更新,但是更新更新也包含在其网站上。我找不到具体的参考,所以也许有人可以对此发表意见。与ActiveState相似,并且可能是有思想的,Python(x,y)明确指出它与Python的其他安装不兼容:建议在安装Python(x,y)之前先卸载所有其他Python发行版
- Enthought Canopy使用MSI,并将分别安装到所有用户中或为所有用户安装,
Program Files\Enthought
或home\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 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安装程序。[ 更新:2016-05-16] Anaconda和Miniconda现在使用.exe
安装程序,并提供选项来禁用WindowsPATH
和注册表更改。因此,根据安装方式和安装过程中选择的选项,可以在不中断现有Python安装的情况下安装Anaconda / Miniconda。如果
.exe
使用安装程序和选项来改变的WindowsPATH
和注册表都没有禁用,则任何以前的Python的安装将被禁用,但只需卸载Python/ Miniconda安装应恢复原来的Python安装,也许除了Windows注册表Python\PythonCore
键。Python/ Miniconda使得下面的注册表编辑无论安装选项:
HKCU\Software\Python\ContinuumAnalytics\
使用下列按键:Help
,InstallPath
,Modules
和PythonPath
– Python官方注册过这些按键,但下Python\PythonCore
。还为Anaconda \ Miniconda注册了卸载信息。除非在安装过程中选择“在Windows中注册”选项,否则它不会创建PythonCore
,因此像Visual Studio的Python Tools这样的集成不会自动看到Anaconda / Miniconda。如果注册Python/ Miniconda选项被激活,那么我认为您现有的Python Windows注册表项将被改变和卸载可能不会恢复它们。 - 我认为,可以通过WinPython控制面板处理WinPython更新。
- PortablePython是不再被开发。
它没有更新方法。可能更新可以解压缩到一个新的目录,然后App\lib\site-packages
和App\Scripts
可以复制到新安装的,但如果没有工作,然后重新安装所有的包可能是必要的。使用pip list
查看包安装了什么,它们的版本。有些是由PortablePython安装的。使用easy_install pip
如果未安装它安装点子。
如果OP具有2.7.x,并且想要安装其他版本,例如 <= 2.6.x或> = 3.xx,则可以并排安装不同版本。您必须选择要与
*.py
文件关联的Python版本(如果有),以及要在路径中使用的版本,尽管如果使用BASH则应该能够设置具有不同路径的shell 。AFAIK 2.7.x向后兼容2.6.x,因此不需要IMHO并排安装,但是Python-3.xx不向后兼容,因此我的建议是将Python-2.7放在您的路径上并具有通过创建指向可执行文件的快捷方式python3(这是Linux上的常见设置),可以将python-3作为可选版本。Windows上官方的Python默认安装路径是- 适用于3.3.x的C:\ Python33(最新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还是更新软件包的好工具。如果软件包使用二进制安装程序,则通常在安装新软件包之前先卸载旧软件包。
我希望这可以消除任何混乱。
回答 1
最好的解决方案是在多个路径中安装不同的Python版本。
例如。C:\ Python27(适用于2.7)和C:\ Python33(适用于3.3)。
阅读以获取更多信息:如何在Windows上运行多个Python版本
回答 2
官方Python .msi安装程序旨在替代:
- 以前的任何微型发行版(在xyz中,z为“微型”),因为可以保证它们是向后兼容和二进制兼容的
- 任何微型版本的“快照”(从源构建)安装
快照安装程序旨在用较低的微型版本替换任何快照。
任何其他版本不一定兼容,因此与现有版本一起安装。如果您希望卸载旧版本,则需要手动进行。并卸载您拥有的所有第三方模块:
- 如果您从
bdist_wininst
软件包(Windows.exe
)安装了任何模块,请在卸载版本之前先将其卸载,否则如果卸载程序具有自定义逻辑,则卸载程序可能无法正常工作 - 安装了模块
setuptools
/的pip
驻留在其中,Lib\site-packages
之后可以删除 - 您为每个用户安装的软件包(如果有)驻留在该软件包中,
%APPDATA%/Python/PythonXY/site-packages
并且同样可以删除
回答 3
我一直只是将新版本安装在最上面,从来没有任何问题。但是,请确保您的路径已更新为指向新版本。