内容提要
在2026年Python语言峰会上,Ned Deily探讨了macOS安装程序是否仍值得发布。他指出macOS已不再特殊,但安装程序维护者稀少、技术债重,且不符合苹果规范。用户包括IT部门和科研人员,但Homebrew等项目均自行构建。Ned计划在PEP 11中增加macOS支持条款,实现自动化构建,并迁移到XCFramework。
延伸解读
macOS 安装程序的技术债与维护困境
Ned Deily 指出,macOS 安装程序已积累 25 年的技术债,不符合苹果文件布局规范,且不支持沙盒,无法上架 App Store。维护者稀少,长期只有他一人负责,处于“黑暗角落”。这导致更新滞后,知识未在核心开发者中传播。若继续发布,需正视这些结构性问题,而非惯性维持。
用户群体不明与替代分发渠道的兴起
官方 macOS 安装程序的用户画像只能猜测,包括 IT 部门、学校、科研人员等。但 Homebrew、MacPorts、Conda、uv 等项目均自行构建 Python,不依赖 python.org 的构建。py2app 虽使用 Framework 构建,但需修改才能工作。这表明官方安装程序的不可替代性在下降,需求调查(如开发者调查)有助于决策。
PEP 11 支持策略与构建现代化计划
Ned 计划在 PEP 11 中增加 macOS 支持条款,并考虑将不同构建类型和架构(如 ARM 与 x86-64)划分为不同支持层级。他还希望自动化构建、打包和 CI,弃用 PPC 通用构建,迁移到 XCFramework。但通用 fat-file 技术可能仍需保留钩子,因为苹果每次迁移 CPU 架构都可能再次需要。
Q&A
为什么CPython历史上会为macOS提供预编译安装程序?
因为macOS和Windows被认为与大多数其他平台“不同”,所以CPython历史上为这两个平台提供了预编译安装程序。
macOS安装程序目前面临哪些主要问题?
macOS安装程序积累了25年的技术债,不遵循macOS文件布局指南,不支持macOS沙盒(无法通过App Store分发),只有一个系统级安装位置,且Framework版本方案与Python版本方案因ABI兼容性问题不一致。
谁在使用官方Python macOS发行版?
Ned猜测用户包括集中式IT部门等受管系统环境、公立学校、工程或科学用户、新手程序员和实验者。
Ned Deily对macOS和Python的未来计划是什么?
Ned计划在PEP 11中增加macOS支持条款,制定支持macOS的总体政策,考虑将不同构建类型和架构视为不同的PEP 11目标,利用iOS和macOS的构建重叠,自动化构建过程(包括打包和CI),并现代化macOS支持,包括弃用PPC通用构建和迁移到XCFramework打包。
macOS的Framework构建有什么优点和缺点?
优点:可以轻松将Python嵌入macOS应用,无需外部依赖即可运行。缺点:不遵循macOS文件布局指南,不支持沙盒,只有一个系统级安装位置,且版本方案与Python版本方案不一致。
其他项目如何为macOS构建和分发Python?
Homebrew、MacPorts、Conda、uv、ActiveState以及Apple(作为Xcode的一部分用于LLDB)等项目都自行构建Python发行版,不使用python.org上的构建。