ラビナ*_*ンダン 46 python release-management
根据 Python 的官方文档,Python2.7 的支持将在不久的将来结束。
弃用:Python 2.7 的生命周期将于 2020 年 1 月 1 日结束。请升级您的 Python,因为在该日期之后将不再维护 Python 2.7。pip 的未来版本将不再支持 Python 2.7。有关 pip 中 Python 2 支持的更多详细信息,请访问https://pip.pypa.io/en/latest/development/release-process/#python-2-support
为什么 Ubuntu 在即将推出的版本中不使用 Python3 作为默认设置?
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="19.04 (Disco Dingo)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 19.04"
VERSION_ID="19.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=disco
UBUNTU_CODENAME=disco
Run Code Online (Sandbox Code Playgroud)
$ python
Python 2.7.16 (default, Apr 6 2019, 01:42:57)
[GCC 8.3.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Run Code Online (Sandbox Code Playgroud)
Kul*_*lfy 50
默认情况下不再安装 Python 2。Python 3 已更新至 3.6。这是最后一个在 main 中包含 Python 2 的 LTS 版本。
而且上面的说法是正确的。默认情况下,Python 2 未在 18.04 和之后发布的版本中安装。Ubuntu 已经将几乎所有项目从 Python 2 迁移到 Python 3。例如,根据Disco Dingo 的发行说明:
Samba 已更新到 4.10.x 版,这里的重大变化之一是对python3 的支持。在Disco中,samba及其依赖现在都是python3,tdb除外。tdb 仍然构建了一个 python2 包,即 python-tdb,但所有其他包,包括 samba 本身,都只是 python3。
此外,即使Ubuntu的18.04发布之前,Ubuntu的/规范开始要求开发人员能够迁移到Python 3,因为几近结束。来自Python - Ubuntu Wiki:
所有 Ubuntu/Canonical 驱动的开发现在都应该以 Python 3 为目标,所有新代码都应该是 Python 3。如果你因为你的依赖堆栈而无法做到这一点,让我们谈谈。
似乎在您的系统上,Python 2 是有意安装的,或者可能是其开发人员尚未迁移到 Python 3 的其他某个软件包的依赖项。您可以通过运行来检查已安装的依赖于 Python 2 的软件包
apt rdepends python --installed
Run Code Online (Sandbox Code Playgroud)
在python运行时调用 Python 2 的原因在于PEP 394的历史要点之一——类 Unix 系统上的“python”命令:
该
python命令应始终调用Python 2(以防止在 Python 3 上运行 Python 2 代码时出现难以诊断的错误)。
在较新的版本(例如 20.04)上,Ubuntu 提供了两个软件包:
python-is-python2/focal,focal 2.7.17-4 all
symlinks /usr/bin/python to the DEPRECATED python2
python-is-python3/focal,focal 3.8.2-4 all
symlinks /usr/bin/python to python3
Run Code Online (Sandbox Code Playgroud)
顾名思义,较早的将进行python调用python2,稍后将调用python3. 如果您没有依赖于 Python 2 的应用程序,您可以安装python-is-python3makepython来调用python3. 或者,您也可以编辑脚本的shebang,/usr/bin/python3使脚本直接python3用作解释器。