内容提要
2024年12月17日起,Astral接管python-build-standalone项目。该项目由Gregory Szorc创建,用于构建可移植的独立Python发行版,已被uv、pipx等广泛使用,下载超7000万次。Astral自3月起参与维护,未来将保持更新、改进构建流程并扩展平台支持。
延伸解读
项目背景与重要性
python-build-standalone 由 Gregory Szorc 创建,旨在构建可移植的独立 Python 发行版。它通过静态链接依赖和修改 CPython 构建系统使用相对路径,解决了传统 Python 安装与系统耦合的问题。该项目已被 uv、Rye、mise、Bazel 的 rules_python、pipx、Hatch 等工具广泛使用,下载量超过 7000 万次,成为 Python 生态中安装 Python 的主要来源之一。
Astral 的维护与未来计划
Astral 自 2024 年 3 月起参与维护 python-build-standalone,并负责了自 4 月以来的所有发布,自动化了发布流程,增加了对 Python 3.13 及自由线程 Python 的支持。2024 年 12 月 17 日,项目正式转移至 Astral 组织。Astral 计划长期维护并推动项目发展,具体目标包括:紧跟 Python 版本更新、将补丁上游至 CPython、消除现有局限(如 musl 构建与扩展模块不兼容)、改进构建和发布流程,以及扩展支持平台(如 ARM Windows
独立发行版的技术优势
与从源码构建 Python 相比,python-build-standalone 提供的独立发行版具有显著优势:下载预构建二进制比源码构建快得多,尤其是启用 PGO 和 LTO 优化时;避免了构建工具链依赖和潜在的构建失败;并且真正独立,无需额外依赖即可在任何机器上运行。例如,uv 的 python install 命令之所以快速且无 hassle,正是得益于这些独立构建。
Q&A
python-build-standalone 是什么?它解决了什么问题?
python-build-standalone 是 Gregory Szorc 创建的项目,用于构建可移植的独立 Python 发行版。它通过静态链接依赖并修改 CPython 构建系统使用相对路径,解决了 CPython 通常与构建系统紧密耦合、无法直接分发预编译二进制的问题。
哪些工具使用了 python-build-standalone?
python-build-standalone 为 uv、Rye、mise、Bazel 的 rules_python、pipx、Hatch 等工具提供 Python 安装支持,自发布以来下载量超过 7000 万次。
Astral 从什么时候开始接管 python-build-standalone?
Astral 于 2024 年 12 月 17 日正式接管 python-build-standalone 项目,但自 2024 年 3 月起就已参与维护。
Astral 接管后对 python-build-standalone 有哪些计划?
Astral 计划保持项目与 Python 版本同步更新、将 CPython 构建系统的补丁上游化、移除现有局限(如 musl 构建与扩展模块不兼容)、改进构建和发布流程(如持续构建、扩展平台支持)。
python-build-standalone 如何实现“独立”的 Python 发行版?
它通过静态链接 Python 依赖,并修改 CPython 构建系统使其使用相对路径而非绝对路径,从而构建出可下载、解压即用的独立 Python 发行版。
为什么从源码构建 Python 不如使用 python-build-standalone?
从源码构建速度慢,尤其启用优化(如 PGO 和 LTO)时;需要构建工具链(如 gcc),可能因依赖缺失或系统库不兼容而失败。而 python-build-standalone 提供预构建的独立二进制,下载即用,无需额外依赖。