CPython: The Python Reference Implementation
When uv python install downloads an interpreterThe program that reads and executes Python code. When you run "python3 hello.py", python3 is the interpreter.
, it downloads CPython: the reference implementation of the Python language, written in C. CPython compiles .py files to bytecode and executes them, and it ships the standard library that every Python program depends on. Alternative implementations like PyPy and GraalPy exist, but CPython is what “Python” means in practice.
uv python install target. Running uv python install cpython downloads the latest stable release. See How to install Python with uv.Release cycle
CPython follows an annual release cycle defined by PEP 602. A new minor version (3.x) ships each October. Each release receives two years of full bug-fix support and three additional years of security-only patches, for a total five-year support window. The developer guide tracks which versions are currently supported.
Patch releases (3.x.y) arrive roughly monthly during the bug-fix phase. Security releases are irregular and address only vulnerabilities.
Build variants
A single CPython version can ship in several build configurations:
- Standard build is the default. It includes the GIL and ships with every installer and package manager.
- Free-threaded build removes the GIL, enabling true thread-level parallelism. Officially supported starting in Python 3.14 (PEP 703). uv installs it with the
tsuffix:uv python install 3.14t. See How to use free-threaded Python in a uv project. - Debug build includes extra runtime checks and assertions. Useful for extension authors, not typical application development.
Installation
Most developers should install CPython through a version manager rather than platform installers. uv downloads pre-built binaries and manages multiple versions side by side:
uv python install cpythonThis downloads the latest stable CPython release into uv’s managed directory. uv run and uv sync select a managed interpreter automatically when it satisfies the project’s requires-python.
Other installation paths:
| Method | What it does |
|---|---|
uv python install 3.12 |
Downloads a specific minor version |
| pyenv | Compiles CPython from source (macOS/Linux) |
| python.org installers | Official GUI/PKG installers for macOS and Windows |
Homebrew (brew install python) |
System-level install on macOS |
Linux distro packages (apt install python3.12) |
System-level install, often pinned to a single version |
uv and pyenv both read .python-version files, so version pinning is portable between them.
python-build-standalone
When uv downloads a CPython interpreter, it fetches a pre-built binary from the python-build-standalone project, maintained by Astral. These builds cover macOS, Linux, and Windows across x86-64 and ARM64 architectures. They are self-contained relocatable installations that do not require system dependencies beyond a C library.
Cons
- Single-threaded by default. The GIL limits CPU-bound parallelism to one thread at a time. The free-threaded build removes this limit but is newer and not yet the default.
- Slower than JIT-compiled alternatives for sustained pure-Python computation. PyPy’s tracing JIT can be significantly faster for tight loops (
uv python install pypy@3.11). - Source builds are fragile. Compiling CPython from source (the pyenv default) requires C build tools and system libraries; missing dependencies cause silent omission of standard library modules.