编程学习网 > 编程语言 > Python > Python发布了新的标准包锁文件格式,遵守PEP 751标准!
2025
04-07

Python发布了新的标准包锁文件格式,遵守PEP 751标准!


Python 团队正在开始采用 PEP 751,它指定了应用程序包之间的依赖关系,从此无需动态依赖关系解析即可实现可重复的安装。

Python 核心开发人员 Paul Moore 这样表示说:

“这是完全的、彻底的最终接受,而并非临时的”,他还希望避免在新标准实施和使用之前出现延迟。话虽如此,并非所有现有的包管理器都可以取代其现有的本地锁定文件格式。新标准将使用.toml,它已经受到包括 Python 在内的编程语言的广泛支持,它的一个好处是特别容易阅读。 

微软首席软件工程师 Brett Cannon 也是核心Python的开发人员,他是 2021 年提出PEP 665 的人之一。Python 应用程序依赖于模块(也称为包),这些模块通过导入系统使用。为了使应用程序安装可重现,每次安装时都必须使用这些包的相同版本。好处是包括可靠性和更高的安全性,通过指定包依赖项和版本来实现。 

在 PEP 665 中发现的问题是并没有标准的 Python 锁文件,而是多个工具(例如 PDM、Poetry、pip-tools 和 Pipenv)都在使用自己不同的格式,这给开发者和托管服务提供商带来了很大的复杂性。

PEP 665 提案于 2022 年初被拒绝,根据核心开发人员 Paul Moore 的拒绝信息说,其原因是社区希望“更好地了解我们真正想要什么” 。

一个关键问题是 Python wheel(二进制包)与 sdist(源分发)之间存在区别,后者可在没有 wheel 时使用。如果使用 sdist,则很难保证可重复性。PEP 665 根本不支持 sdist,所以 Poetry 团队表示无法支持它。

2024 年 7 月,Cannon 提出了PEP 751,其中特别提到了 sdist,并为用户提供了选择加入或退出使用的选项。2025 年 1 月,Python社区对 PEP 751 的修订进行了广泛讨论,社区试图找到一种可以被 Poetry、PDM 和 uv(用 Rust 编写的包管理器)等工具都能采用的解决方案。

关于这方面的消息,开发者们也都议论纷纷。“所有工具作者都表示他们可以并且会将 PEP 实现为导出格式,”Cannon 说,但这并不意味着他们会将其作为唯一的锁定文件格式。uv 的创建者 Charlie Marsh表示说, “今天,PEP 751 风格的 pylock.toml 文件不足以取代 uv.lock”,但会添加对导出的支持。

当已有广泛使用的竞争标准时,标准化就比较困难。Python 社区坚信官方标准的价值,但要让所有打包工具都在内部使用它仍然是一个挑战,而且需要进一步的修订。

以上就是“Python发布了新的标准包锁文件格式,遵守PEP 751标准!的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取