打造高度便携的 Python 独立发行版
Self-contained highly-portable Python distributions
python-build-standalone 项目致力于生成自包含且高度便携的 Python 发行版。这些发行版集成了完整的 Python 功能,绝大多数标准库扩展模块均已内置,其依赖项要么随发行版分发,要么被静态链接,从而极大减少了运行时的依赖需求。构建过程严格限制了 CPU 指令集和共享库的使用,确保在目标架构的任何系统上都能顺畅运行。此外,部分发行版还附带构建产物和元数据,方便下游打包者(如 PyOxidizer 项目)进行二次定制,甚至移除 SQLite 或 OpenSSL 等特定功能,非常适合将 Python 嵌入更大的二进制文件中。对于需要增强功能的用户,PyOxy 项目则基于这些发行版,通过 Rust 代码提供单文件可执行的完整 Python 解释器。
该项目的目标是让生成的发行版能够在目标架构的任何系统上运行。
HN 评论区
36- charliermarsh
这些就是我们在 uv(https://github.com/astral-sh/uv)中使用的 Python 发行版,也就是说,当你用 uv 安装 Python 时,实际上是从 python-build-standalone 安装的。(其他许多能帮你安装 Python 的工具也是如此,比如 pipx、Hatch、Poetry、Bazel 等。)
过去大约一年半里,我们在这个项目上的工程时间主要分成了三块:
1. 紧跟上游 CPython。(我们也希望尽可能将这部分工作回馈到 CPython 本身。)
2. 修复所有已知的与 CPython 相比的“怪癖”。
3. 让这些发行版的性能尽可能快(甚至快于)其他任何 CPython 发行版。
如果你感兴趣,我在接手该项目维护时写过一篇关于“为什么”和“怎么做”的文章:https://x.com/charliermarsh/status/1864050698574311561
- simonw
这些发行版非常优秀。Astral 已经接管了它们的维护工作一段时间了,所以从技术上讲,它们现在归 OpenAI 所有。
https://github.com/astral-sh/python-build-standalone
如果你正打算把 Python 打包进另一个应用里——比如 macOS 桌面应用——那这些正是你需要的。
- zie
还有 APE/Cosmopolitan 的跨平台二进制文件,里面也包含了一个 Python。没错,就是跨平台二进制文件。这些二进制文件能“在 Linux + Mac + Windows + FreeBSD + OpenBSD 7.3 + NetBSD + BIOS 上原生运行,提供最佳性能和最小的占用空间。”
* Python 源码:https://github.com/jart/cosmopolitan/tree/master/third_party...
* Python 二进制文件:https://cosmo.zip/pub/cosmos/bin/python,大约 40MB。
据说你可以把 .py 文件打包进 Python 二进制文件里直接运行,不过我还没机会去试试玩玩。