安装python 3.3后如何删除python 2.7?


19

我已经在Ubuntu 12.10上成功安装了python 3.3。由于我不需要多个版本的python,因此我想删除现有的python 2.7。当我尝试这样做时,使用

sudo apt-get remove python2.7

Ubuntu警告我,有大量依赖于系统的组件也将被删除。看起来真的很吓人。

那么,有没有一种方法可以删除python 2.7而又不删除系统相关组件,或者我可以指导那些相关组件使用python 3.3?


2
我不推荐它。Python版本一点也不兼容,因此如果您没有正确的版本,则较旧的脚本可能会遇到问题。
tikend

没错,python3.3已声明它与python 2.7不兼容。因此,我最好保留它。谢谢你的建议!
凤凰城

Answers:


23

你不能

Ubuntu Wiki / Python中

长期计划(例如14.04)

将Python 2移到Universe,将主要的所有Python应用程序移植到Python3。我们将永远不会完全摆脱Python 2.7,但由于永远也不会有Python 2.8,而到那时,Python 2.7已有近4年的历史了。在14.04 LTS版本中,是时候将Python 2发布到Universe了。

这意味着许多基本软件包在2.7上具有严格的依赖性,并且仍然需要很多时间才能完成迁移。请注意,Python 3具有许多向后不兼容的更改-这不是常规的软件包升级。

如果您真的想摆脱Python 2.7,则必须等待14.04版本,但不能保证。


3
现在是16.04。
muru

现在是18.04。
Francesco Pasa

现在是19.04分!!
Genarito

5

您不能,而且您真的不想要。

Python在2.7和3.0之间发生了巨大变化,并向后兼容。为2.7编写的Python脚本(用于支持大量系统的基础结构)不一定会在Python 3.x中正常工作。这些脚本需要进行更新以与新版本一起使用,在此之前,您需要保留Python 2.7。

这就是为什么您会注意到对旧Python的大量依赖-系统依赖于它。此外,将两个版本的Python安装在同一系统上也没有害处。而且,将来您可能会遇到仍使用Python 2.7的应用程序,因此保持它为好主意。


2

之所以在2019年来到这里是因为我默认使用Python3开发,并且在看到运行后会删除的内容后得出与OP相同的结论 apt purge python

由于我真正想要的是用just调用Python3 python,所以我运行了

sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python

这样,如果仍然需要Python2.7,则可以使用显式python2.7调用它,而python由于符号链接,因此简单地将调用默认为Python3。

我没有任何调用python2.7的bash级别脚本,python因此此更改不会造成破坏-而其他系统则需要对其脚本进行相应调整。

发行版将python命令从python2切换到python3的主要障碍不是发行版内部的破坏,而是系统管理员和其他用户开发的私有第三方脚本的破坏。

- 类似于Unix的系统上的“ python”命令

这个答案不是对OP的直接响应,但是作为一个有类似问题的人,这是我在考虑删除2.7时要寻找的功能。而不是删除,只是确定使用哪个优先级python


1
这让我感到一个坏主意。为Python 2制作的所有旧脚本都将调用/usr/bin/python,而为Python 3制作的几乎每个脚本都将知道更改,并python3在当前时间调用。让pythonpython2.7是不太可能打破东西。
vidarlo

我会说这取决于环境,就像我说的那样,我不制作需要python2并在3中工作的脚本-而如果在运行自动化脚本的工作台上进行这样的更改,那将是非常破坏性的。
saniboy

您是否可以列出调用/ usr / bin / python的特定系统进程?当我收到新的信息时,我总是敞开心changing
saniboy

我在18.04中发现了很多。grep -r "/usr/bin/python" /usr/bin/应该给你一个简短的概述。它可能不会禁用您的系统,但可能会使某些东西无法正常工作。例如solaar
vidarlo

1
在我检查的系统上,有39个未明确引用python3或python2。所有这些可能都是python2。当然,这取决于您所安装的内容,但是我也没有太大理由这样做……
vidarlo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.