Leap 的 Modern Python 堆栈
2023-06-05 | Hanjingxue Boling | CC-BY-SA-3.0
将 Python 3.11 添加到 Leap 15.4 及更新版本
Leap 使用的默认 Python 解释器“太旧”了。在 Leap 中,python3
调用的是上游于 2021 年底宣布产品寿命结束的 Python 3.6。Leap 当前版本基于 SUSE SLES 15,因此它得到了 SUSE 的支持,但它并不容易与 modern python 模块一起使用。
现在,你可以在 Leap 中安装一个更现代的 Python 解释器;存储库已经收录了 python310
和 python310-pip
;你可以安装并使用 virtualenv
模块从 PyPI 中安装模块,python311
将在 Leap 15.5 发布时提供。
但有时这还不够,一些 python 模块需要安装非 python 库或工具,并且无法直接从 PyPI 使用它们。
这就是为 Leap 使用新的 Python 解释器和模块的原因。
新的 Python 3.11 和 Python 模块旨在提供一个更新的 Python 解释器,和来自稳定的 SUSE 解决方案(SLES)的 Python 基础模块集。这些 Python 堆栈由 SUSE 维护,Leap 则可以直接从 SLES 继承新的工具集。
首先要记住的是,这个解决方案没有带来任何重大变化。Leap 默认的 Python 版本(3.6)保持不变,现有的 Python 模块没有更新。当前的 Python 3.6 解释器和包保持不变。出于软件兼容性原因,/usr/bin/python3
二进制文件将保留 Python 3.6,但我们也提供了额外的 /usr/bin/python3.11
。新的 Python 堆栈是一个补充,它不会与现有包冲突,因此它可以在系统中共同安装,而不会影响任何正在运行的应用程序。
你可以在 Leap 15.4 中使用新的 modern Python,Leap 的后续版本也将继承这一功能。你现在可以找到解释器了;但模块列表仍在开发中,很快就会发布。
Python 版本
我们选择的 Python 版本是 3.11。这是最佳选择,因为:
- 它是由 Python Foundation 支持的最新的 Python 正式版本。
- 与以前的版本相比,它有一些明显的性能改进。
- 它与以前的版本兼容,没有破坏不太旧的 Python 代码的重大更改,因此在 Python 3.10 或 Python 3.9 中工作的代码将在 Python 3.11 中正常工作,或者需要进行小的更改。
除了解释器,还有一个提供最新版本的 Python 模块列表。这些 Python 模块是 Modern Python 的一部分,将与 Python 3.11 解释器一起提供,并且是上游发布的最新版本。新的堆栈提供了一个具有最新的解释器和 2023 年的 Python 模块的 Python 环境。
该模块列表将是 Leap 中现有模块的精简子集,大约 500 个软件包。但它是一个基础集,将允许构建更多现代包,并将使使用 Python Backports 的人们的生活更轻松。
对现有系统的影响
新堆栈中的所有 python 包都将提供 “python311-” 版本;例如要安装 Flask,你将找到包 python311-Flask
,python3-Flask
将继续是 python 3.6 版本,它是你可以在 Leap 15.4 中找到的默认版本。
新的 Python 解释器和模块不会影响现有系统。但新的解释器和模块将在 Leap 15.4 及以后可用,所以我们建议大家从 Python 3.6 迁移到新的 Python 3.11 并尝试使用这个现代版本的解释器和 python 基础模块。
使用 Modern Python 提供的包会带来很多直接的好处:
- 相当快的 Python 解释器。
- 具有语法和标准库最新改进的 Modern Python 解释器。
- 通过 PyPI 获取和使用具有改进功能的 Modern Python 模块,而不是等待发行版的更新。
原文:Modern Python stack for Leap,作者:Daniel García Moreno