Skip to content

How to install Python with uv

uv

uv downloads and installs Python interpreters on demand, so you usually don’t need to install Python explicitly. Run uv python install ahead of time to make a version available offline or to put it on your PATH. uv pulls prebuilt CPython binaries from python-build-standalone, so installs don’t need admin privileges and don’t replace system Python or interpreters managed by Homebrew or pyenv.

The same commands work on macOS, Linux, and Windows. You only need uv installed first.

Install the latest stable Python

$ uv python install
Installed Python 3.13.13 in 628ms
 + cpython-3.13.13-macos-aarch64-none

uv downloads the most recent stable CPython release into its managed Python directory. After this, uv run and uv sync find it automatically without further configuration.

Install a specific version

Pass a minor or exact patch version:

$ uv python install 3.12
$ uv python install 3.10.16

Listing several versions installs them in one pass:

$ uv python install 3.11 3.12 3.13

If you only care about staying current on patch releases for versions you already have, see how to keep Python up to date with uv python upgrade.

List installed and available versions

$ uv python list

The output marks downloadable versions as <download available> and shows the path of every interpreter already on disk, including those uv discovered outside its own install directory (system Python, Homebrew, pyenv, and so on). To restrict the list to interpreters uv installed itself:

$ uv python list --only-installed

Verify the install runs

Use uv run to launch a managed Python with the right virtual environment wiring:

$ uv run --python 3.13 python -c "import sys; print(sys.version)"
3.13.13 (main, Apr 14 2026, 14:32:41) [Clang 22.1.3 ]

The first invocation downloads 3.13 if it isn’t installed yet.

Make a uv-managed Python the default python command

By default, uv python install writes versioned shims like python3.13 into uv’s bin directory. Pass --default to also write python and python3:

$ uv python install --default 3.13

Once that bin directory is on your PATH, python resolves to the uv-managed interpreter. See how to add Python to your system PATH with uv for the PATH setup.

Uninstall a version

$ uv python uninstall 3.10.16

Pass a minor version to remove every installed patch at once:

$ uv python uninstall 3.10

Frequently asked questions

Does uv python install need admin privileges?

No. uv downloads to its user-owned data directory (e.g., ~/.local/share/uv/python on Linux and macOS, %LOCALAPPDATA%\uv\python on Windows), so installs never need sudo or an elevated shell.

Will it interfere with system Python or Homebrew Python?

No. uv-managed interpreters live in a separate directory. Existing python commands on your PATH keep working until you opt in with --default and add uv’s bin directory to PATH.

How is this different from pyenv?

Both tools install multiple Python versions side by side, but uv downloads prebuilt binaries (no compiler toolchain needed) and ties Python installation into the project workflow that handles dependencies and lockfiles. See how do pyenv and uv compare for Python interpreter management?.

Can I install PyPy or free-threaded CPython?

Yes. Use uv python install [email protected] for PyPy. For the free-threaded build, append a t to the version (uv python install 3.13t).

Related

Last updated on