Python 开发者指南¶
本指南是为 贡献 Python 提供的全面资源,适用于新老贡献者。它由维护 Python 的同一社区 维护。我们欢迎您为 Python 做出贡献!
快速参考¶
以下是设置和提交补丁所需的基本步骤。一旦您了解了基础知识,这将作为清单。有关完整说明,请参阅 设置指南。
将 CPython 存储库 分叉到您的 GitHub 帐户,并使用以下方法 获取源代码
git clone https://github.com/<your_username>/cpython cd cpython
构建 Python
./configure --with-pydebug && make -j
./configure --with-pydebug && make -j
PCbuild\build.bat -e -d
另请参阅 更详细的说明、如何安装和构建依赖项,以及 Unix、macOS 和 Windows 的特定于平台的页面。
运行测试:
./python -m test -j3
./python.exe -m test -j3
注意:大多数 macOS 系统使用
./python.exe
以避免与Python
目录的文件名冲突。.\python.bat -m test -j3
创建一个新分支,您的工作将针对该问题,例如
git checkout -b fix-issue-12345 main
如果问题尚不存在,请 创建。琐碎的问题(例如拼写错误修复)不需要创建任何问题。
修复问题后,运行测试和 patchcheck
make patchcheck
make patchcheck
.\python.bat Tools\patchcheck\patchcheck.py
如果一切正常,请提交。
在 GitHub 上推送您的 fork 分支并 创建拉取请求。在拉取请求描述中使用
gh-NNNN
包含问题编号。例如gh-12345: Fix some bug in spam module
将新闻条目作为单独的文件添加到
Misc/NEWS.d
目录中。新闻条目可以通过使用 blurb-it 或 blurb 工具及其blurb add
命令来创建。请在 存储库 中详细了解blurb
。
注意
首次贡献者需要签署贡献者许可协议 (CLA),如本指南的 许可 部分所述。
快速链接¶
以下是你在为 Python 做贡献时可能经常会参考的一些链接
PEPs(Python 增强提案)
贡献¶
我们鼓励每个人为 Python 做贡献,这就是我们编写此开发者指南的原因。如果你在查看本指南中的材料后仍有疑问,那么 核心 Python 指导 小组可以帮助指导新贡献者完成此过程。
来自 Python 社区的许多个人为 开源指南 中的一系列优秀指南做出了贡献。
核心开发者和贡献者都会发现以下指南很有用
为 Python 做贡献的指南
贡献者 |
文档编写者 |
分类人员 |
核心开发者 |
---|---|---|---|
我们建议根据需要阅读本指南中的文档。你可以在你感到满意的地方停止,并在不立即阅读和理解所有这些文档的情况下开始做出贡献。如果你确实选择在文档中跳过,请注意,它是在假设已经阅读了前面的文档的情况下编写的,因此你可能需要回溯以填补缺失的概念和术语。
提议对 Python 本身进行更改¶
改进 Python 的代码、文档和测试是永无止境的持续任务,因为 Python 作为不断发展的技术系统的一部分而运行。比这些必要的维护活动更具挑战性的持续任务是找到方法,以标准库和语言定义的形式,使 Python 成为开发者工具包中更好的工具。
虽然这类更改比上述更改罕见得多,但它们确实会发生,并且该过程也作为本指南的一部分进行了描述
其他解释器实现¶
本指南专门用于为 Python 引用解释器(也称为 CPython)做出贡献(虽然标准库的大部分是用 Python 编写的,但解释器核心是用 C 编写的,并且最容易与 C 和 C++ 生态系统集成)。
还有其他 Python 实现,每个实现都有不同的重点。与 CPython 一样,他们总是希望做的事情比他们有开发者来处理的事情更多。一些可能感兴趣的主要示例是
PyPy:一个专注于在主要平台上进行高速(JIT 编译)操作的 Python 解释器
Jython:一个专注于与 Java 虚拟机 (JVM) 环境良好集成的 Python 解释器
IronPython:一个专注于与 .NET 和 Mono 提供的公共语言运行时 (CLR) 良好集成的 Python 解释器
Stackless:一个专注于提供轻量级微线程的 Python 解释器,同时在很大程度上与 CPython 特定的扩展模块兼容
MicroPython:一个微小的 Python 解释器,具有 Python 标准库的一小部分,经过优化,可以在微控制器和受限环境中运行。
CircuitPython:MicroPython 的一个分支,旨在简化在低成本微控制器板上进行实验和学习编码。
关键资源¶
编码风格指南
源代码
PEPs(Python 增强提案)
其他资源¶
行为准则¶
请注意,Python 软件基金会支持的基础设施上的所有互动都 涵盖 在 PSF 行为准则 中,其中包括用于开发 Python 本身的所有基础设施(例如邮件列表、问题跟踪器、GitHub 等)。总的来说,这意味着无论项目中的职位如何,每个人都应该开放、体贴和尊重他人。
Python 分支状态¶
已移至 Python 版本状态