主要观点:昨天启用了新的 distutils-r1.eclass 优化——轮子重用,可使 eclass 为所有 Python 实现构建一个或两个轮子并安装,更接近 pip 行为,能加快多解释器构建速度,尤其对纯 Python 包和稳定 ABI 包有效,同时介绍了该优化的一些设计考虑和实现细节。
关键信息:
- 纯 Python 轮子重用:优先使用纯 Python 轮子,若有扩展则忽略,存在错过优化风险。
- 稳定 ABI 轮子重用:可避免重复构建相同 C 或 Rust 代码,本地构建时可忽略平台和 ABI 标签,需注意仅 CPython 支持稳定 ABI。
- 单个包多个轮子:将 DISTUTILS_WHEELS 变量转换为关联数组,根据目录匹配重用轮子。
重要细节: - 未启用优化时,eclass 会为每个启用的 Python 实现构建单独轮子并安装。
- 对于多个解释器构建,纯 Python 包不再多次启动 setuptools,稳定 ABI 包不必多次构建相似扩展。
- 代码在 distutils-r1.eclass 中实现,启用前已使用 2 个月未发现问题,且 eclass 会验证 Python 包安装文件内容是否一致。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。