跳转到内容

CPython - 开源琅嬛阁

python/cpython

The Python programming language

1
9.3k
73,323
34.8k
github.com · python/cpython

项目介绍

CPython 是 Python Software Foundation 维护的 Python 官方参考实现,包含解释器(字节码虚拟机)、内置类型、标准库以及 C 扩展 API。它以「 batteries included 」著称,语法简洁、动态类型,在 Web 后端、数据科学、自动化脚本、AI/ML 与 DevOps 等领域拥有最广泛的生态。本仓库为 CPython 核心源码;日常开发通常从 python.org 安装发行版,文档与教程亦以官网为准。

核心特性

  • 解释型动态语言:交互式 REPL、动态类型与 duck typing,适合快速原型与脚本化任务
  • 丰富标准库jsonasynciopathlibsqlite3http 等模块覆盖常见场景,减少第三方依赖
  • 成熟发布节奏:遵循 PEP 流程;Stable 分支提供 bugfix 与安全更新,feature 版本按 PEP 826 等计划发布
  • C 扩展与 FFIctypescffi 及 C API 支持高性能扩展与系统库集成
  • 开放治理:PSF 与核心开发团队透明运作,Discourse、Issue Tracker 与 devguide 规范贡献路径

对用户价值

若你需要一门上手快、生态完整、适合数据处理与自动化的通用语言,Python 是最主流的选择之一。CPython 作为参考实现,保证 PyPI 上绝大多数包的兼容基准;LTS 式 bugfix 分支为企业提供可预期的升级窗口。对于全栈与数据团队,Python 在 Django/FastAPI、Pandas、PyTorch 等栈中降低集成成本;代价是 GIL 限制 CPU 密集多线程并行,此类场景需借助 multiprocessing、C 扩展或替代实现。

与替代方案

  • 相比 PyPy,CPython 生态兼容性与第三方 C 扩展支持最完整;PyPy 通过 JIT 在部分纯 Python 负载上更快,但部分 C 扩展兼容性仍需谨慎验证。
  • 相比 Node.js,Python 在数据科学、机器学习、科学计算与运维脚本领域工具链更成熟;Node.js 在前端同构、实时 I/O 与 npm 生态规模上占优,适合 JavaScript 全栈团队。
  • 相比 Go / Rust / Java,Python 开发效率与可读性更高、入门门槛更低,适合 I/O 密集与快速迭代;对极致性能、强静态类型或特定企业中间件生态有强需求时,系统语言或 JVM 栈可能更合适。
  • 相比 Jython / GraalPython 等替代实现,CPython 是 PyPI 与 C 扩展的事实标准;JVM 集成或 GraalVM 多语言场景可选专用实现,但生态覆盖面较小。
  • 边界说明:本仓库用于贡献 CPython 核心或从源码构建;应用开发安装官方发行版或版本管理器即可,无需 clone 本 repo。

适应人群

  • 构建 Web API、数据管道、自动化脚本、CLI 工具或 AI/ML 应用的后端、数据与全栈工程师。
  • 维护 PyPI 包、锁定 Python 版本线、评估标准库行为或参与 PEP 讨论的企业技术负责人。
  • 希望深入解释器、GIL、字节码、C API 或参与 CPython 核心贡献的系统级开发者(需阅读 devguide)。

如何使用

前置条件

  • 操作系统:macOS、Windows 10+、或主流 Linux 发行版(完整支持列表见 devguide 依赖说明)。
  • 生产环境建议选用 Stable bugfix 分支(如 3.12、3.13 等当前维护线);main 分支为开发版,不适合生产。
  • 从源码构建需安装 C 编译器及 zlib、openssl、libffi 等依赖,复杂度远高于安装官方二进制。

安装方式

方式一:官网安装包(推荐大多数用户)

python.org/downloads 下载对应平台的安装包或嵌入式发行版。

方式二:版本管理器(多版本切换)

Terminal window
# pyenv(macOS / Linux)
curl https://pyenv.run | bash
pyenv install 3.13.0
pyenv global 3.13.0
Terminal window
# Homebrew(macOS)
brew install python@3.13
Terminal window
# uv(跨平台,速度快,可管理 Python 版本)
curl -LsSf https://astral.sh/uv/install.sh | sh
uv python install 3.13

更多安装选项见 Python 下载页 与各平台包管理器索引。

方式三:从源码构建(贡献者与高级用户)

Terminal window
git clone https://github.com/python/cpython.git
cd cpython
./configure --enable-optimizations # 可选:PGO 优化构建
make
make test
sudo make install # 多版本并存时用 make altinstall

Windows 构建见 PCbuild/readme.txt;macOS Framework 构建见 Mac/README.rst

首次运行

Terminal window
python3 --version
python3 -c "print('Hello, Python')"

创建 hello.py 并运行:

hello.py
import sys
print(f"Python {sys.version_info.major}.{sys.version_info.minor} on {sys.platform}")
Terminal window
python3 hello.py

验证是否成功

  • python3 --version 输出预期版本号(生产环境应为 Stable bugfix 线,如 3.13.x)。
  • python3 -c "print('ok')" 输出 ok,无动态链接或模块加载错误。
  • python3 -m pip --version 可正常输出(若发行版包含 pip)。
  • 查阅 docs.python.org 确认本地版本与在线文档一致。

常见坑 / 注意事项

  • python vs python3:部分系统 python 仍指向 Python 2 或不存在;脚本与 CI 中建议显式使用 python3 或虚拟环境。
  • 源码仓库 vs 日常使用:clone 本 repo 不等于「安装 Python」;贡献者需遵循 devguide,构建依赖多、耗时长。
  • GIL 与并发:CPU 密集多线程无法线性加速,需用 multiprocessing、asyncio(I/O 密集)或 C 扩展;3.13+ 提供可选 nogil 实验构建。
  • 虚拟环境:项目依赖应隔离在 venvuv/poetry 管理的环境中,避免污染系统 Python。
  • 中国大陆网络:PyPI 安装缓慢可配置镜像(如 pypi.tuna.tsinghua.edu.cn);Python 二进制亦可使用国内镜像站加速下载。
  • 许可证:CPython 以 PSF License 分发,可用于专有项目;Python 商标使用须遵循 PSF 商标政策。