我们很高兴地宣布 Pyston 团队已加入 Anaconda,以继续其优化 Python 解释器的开源开发。Kevin Modzelewski 和 Marius Wachtler 将加入 Anaconda 的资助开源开发者团队,与我们为 Dask、Numba、Bokeh 和许多其他项目做出贡献的人一起。
什么是 Pyston?
Pyston 是标准 CPython 解释器(目前为 Python 3.8)的一个分支,它已被广泛增强,以提高大多数 Python 程序的执行性能。它通过各种技术来实现这一点,包括属性缓存、Quickening、使用 DynASM(LuaJIT 的知名技术)的字节码 JIT 等。你可能听说过 Dropbox 的早期 Pyston 1.0 项目(由相同的开发人员完成),该项目于 2017 年结束。新的 Pyston 2.x 系列是对代码库的完全重写,从 CPython 3.8 的分支开始。
Pyston 的目标是成为所有 Python 应用程序的通用加速器,目前在各种 Python 使用案例中实现了 1.15 倍至 2 倍的提速。
为什么 Anaconda 聘请了 Pyston 团队?
Anaconda 在 Python 优化、可扩展性和性能项目方面已投入近十年的时间。Anaconda 最早的开源项目之一是 Numba 编译器,它是一个基于 LLVM 的 JIT 编译器,用于在 CPU 或 GPU 上运行数值 Python 函数。因此,我们很早就开始考虑 Python 编译器,我们看到了 Pyston 快速将更快的 Python 带给主流受众的潜力。
事实上,Pyston 与 Numba 相辅相成。Numba 在许多数值使用案例中表现出色,但无法优化整个程序,而且它不处理更广泛的 Python 使用案例。Pyston 从不同的方向解决 Python 编译问题。尽管如此,与 CPython 解释器的共同起源意味着 Numba 与它“完美契合”,这两个系统可以在同一程序中协同使用。Numba 可以将单个函数的速度提高 2-10 倍(或更多),而 Pyston 可以提高其他所有内容的性能。我们很高兴看到未来 Numba 和 Pyston 团队更紧密地合作能够实现什么。
我们还认为,Pyston 的一些改进可以上游回传到 CPython,并且 Pyston 开发人员的经验将有利于 微软在未来四年内将 CPython 速度提高 5 倍的努力。同样,Pyston 也将整合来自上游 CPython 的改进。也就是说,我们认为 Pyston 有一个独特的机会可以突破性能的界限,探索在大型项目(如 CPython)的限制(完全合理)之外可能实现的目标。
这对 Pyston 意味着什么?
从 Anaconda 的角度来看,我们现在是 Pyston 的利益相关者和赞助商,这是一个社区开源项目。该项目的维护者(Kevin 和 Marius)将有权独立做出关于其项目的决策,并独立于 Anaconda 发展其用户、贡献者和维护者社区。Anaconda 可能会将 Pyston 整合到当前和未来的产品中,但这些工作将独立于 Pyston 开源项目。
在短期内,我们同意 Pyston 团队的观点,即现在最重要的是将 Pyston 交到用户手中,让他们能够了解它的功能并向项目提供反馈。Anaconda 在构建、测试和分发软件方面拥有丰富的工程专业知识和基础设施,这使得更多人将来更容易尝试 Pyston。
常见问题解答
问:Pyston 的许可证会改变吗?
答:不会。Pyston 将继续使用与 CPython 相同的 PSF 许可证。
问:这意味着安装 Pyston 是否需要安装 Anaconda 或使用 conda?
答:不会。我们希望 Pyston 以尽可能多的方式分发。Conda 具有一些显著的优势,例如能够下载和安装新的 Python 解释器。尽管如此,我们希望通过用户已熟悉的工具(无论是 conda 还是其他工具)接触到所有用户。
问:Pyston 正在成为 Anaconda 产品吗?
答:不会。Pyston 是并且将继续是一个开源项目。我们将来可能会将 Pyston 整合到 Anaconda 产品中,但目前还没有具体计划公布。这些产品将与 Pyston 项目区别开来。
问:Anaconda 会为 Pyston 提供商业支持吗?
答:我们目前还没有任何消息要宣布。
问:Pyston 会被添加到 Anaconda 包分发中吗?
答:这是我们希望做的事情,但目前还没有时间表。
未来
我们对 Pyston 改善所有用户 Python 体验和降低大规模部署 Python 应用程序成本的潜力感到乐观。请关注此空间,获取有关 Pyston 路线图和其他 Anaconda 倡议(旨在促进 Python 中的可扩展计算)的未来公告。