Ubuntu 22.04 LTS中的Python(包括2和3)的状况

1,061 阅读3分钟

Ubuntu 22.04 LTS刚刚发布,我们很关注,因为我们有很多Ubuntu 18.04的机器要在明年升级到22.04。由于我们和我们的用户都使用Python,我一直在研究它在22.04上的状态,现在是时候写一篇关于它的文章了,其中有各种消息。

在Python 2方面,22.04仍然提供了一个软件包,但是采取了一些明显的步骤(对我们来说),最终根本没有Python 2。首先,没有提供官方软件包来使/usr/bin/python指向Python 2。你可以安装一个软件包(python-is-python3)来使/usr/bin/python指向Python 3,或者你可以不安装任何官方软件包。Ubuntu目前没有强制/usr/bin/python成为任何东西,所以如果你想的话,你可以手工创建你自己的符号链接(或者用你自己的软件包)。我们可能会这样做,因为事实证明我们有相当数量的用户在使用'/usr/bin/python',而且目前他们正在获得Python 2。

(如果我们非常精力充沛,我们会试着用Linux 审计系统识别所有的用户,然后去唠叨他们。但可能不会)。

Ubuntu 22.04也放弃了对Python 2版本的Apache's mod_wsgi的支持,这对我们的Django应用仍然是相关的。有可能22.04仍然提供足够的Python 2支持,你可以自己构建它,但我没有研究过这个。理论上,有一个Python 2版本的pip,即 "python-pip";实际上,这与Python 3版本相冲突,后者现在更重要。 如果你需要Python 2版本的pip,你将不得不自己安装它(我还没有检查我关于这个问题的条目中的信息是否在22.04上有效)。

Ubuntu 22.04上的Python 3目前状况良好。Ubuntu 22.04带有Python 3.10.4,这是目前最新的版本,而且令人印象深刻的是,它是一个月前才发布的。有人努力将其纳入22.04(实际的二进制文件显示它是在4月2日构建的)。它还打包了PyPy 7.3.9的Python 3.8版本(以及一个Python 2版本)。这也是写这篇文章时的当前版本(Ubuntu 22.04正式发布的一天后)。PyPy和Python 3都是最新的,这是一个令人惊喜的消息;它们可能会像Ubuntu LTS那样逐渐过时,但至少它们是以最佳状态开始的。

(Ubuntu 22.04还打包了Django 3.2.12,即当前的Django LTS版本;当我写这篇文章时,Django 4.0.4是最新的非LTS版本。我碰巧认为依赖Ubuntu的Django可能是个坏主意,根据这里的Django项目支持时间表,3。2只会被Django项目支持两年,直到2024年4月;在那之后,Canonical要靠自己来维持22.04 LTS剩余三年的安全问题。 该软件包似乎在Canonical说他们支持的"主 "仓库中,但实际上这意味着什么我不知道。)

幸运的是,Ubuntu 22.04有一个当前版本的pipx,这是我现在最喜欢的处理第三方Python程序的工具,这些程序要么根本没有被Ubuntu打包,要么你不想被Ubuntu版本所困。然而,当从Python版本转移到Python版本时,pipx有一些挑战,例如,如果你正在升级你的Ubuntu版本。