Skip to main content

Synopsis

uv python list [OPTIONS] [REQUEST]

Description

List the available Python installations. By default, installed Python versions and the downloads for latest available patch version of each supported Python major version are shown. Use --managed-python to view only managed Python versions. Use --no-managed-python to omit managed Python versions. Use --all-versions to view all available patch versions. Use --only-installed to omit available downloads.

Arguments

[REQUEST]

A Python request to filter by. When provided, only Python installations matching the request will be displayed. See uv help python to view supported request formats. Examples:
  • 3.12 - Show only Python 3.12.x versions
  • cpython - Show only CPython versions
  • [email protected] - Show only PyPy 3.10 versions

Options

Version Filtering

--all-versions

List all Python versions, including old patch versions. By default, only the latest patch version is shown for each minor version. Example: Shows 3.12.0, 3.12.1, 3.12.2, 3.12.3, 3.12.4 instead of just 3.12.4

Platform Filtering

--all-platforms

List Python downloads for all platforms. By default, only downloads for the current platform are shown. Example: On macOS, this will also show Linux and Windows distributions.

--all-arches

List Python downloads for all architectures. By default, only downloads for the current architecture are shown. Aliases: --all-architectures Example: On ARM64, this will also show x86_64 distributions.

Installation Filtering

--only-installed

Only show installed Python versions. By default, installed distributions and available downloads for the current platform are shown.
  • Conflicts with: --only-downloads

--only-downloads

Only show available Python downloads. By default, installed distributions and available downloads for the current platform are shown.
  • Conflicts with: --only-installed

Display Options

--show-urls

Show the URLs of available Python downloads. By default, these display as <download available>.

--output-format <OUTPUT_FORMAT>

Select the output format.
  • Type: Enum
  • Default: text
  • Values:
    • text - Plain text (for humans)
    • json - JSON (for computers)

Custom Downloads

--python-downloads-json-url <PYTHON_DOWNLOADS_JSON_URL>

URL pointing to JSON of custom Python installations.
  • Type: String

Output Format

Text Format (Default)

cpython-3.13.1-macos-aarch64-none     <download available>
cpython-3.12.8-macos-aarch64-none     /Users/user/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/bin/python3.12
cpython-3.11.11-macos-aarch64-none    <download available>
cpython-3.10.16-macos-aarch64-none    /Users/user/.local/share/uv/python/cpython-3.10.16-macos-aarch64-none/bin/python3.10
cpython-3.9.21-macos-aarch64-none     <download available>
cpython-3.8.20-macos-aarch64-none     <download available>
pypy-3.10-macos-aarch64-none          <download available>
Installed versions show their installation path, while available downloads show <download available>.

Text Format with URLs

uv python list --show-urls
cpython-3.13.1-macos-aarch64-none     https://github.com/astral-sh/python-build-standalone/releases/download/20250107/cpython-3.13.1%2B20250107-aarch64-apple-darwin-install_only.tar.gz
cpython-3.12.8-macos-aarch64-none     /Users/user/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/bin/python3.12
cpython-3.11.11-macos-aarch64-none    https://github.com/astral-sh/python-build-standalone/releases/download/20250107/cpython-3.11.11%2B20250107-aarch64-apple-darwin-install_only.tar.gz

JSON Format

uv python list --output-format json
[
  {
    "key": "cpython-3.13.1-macos-aarch64-none",
    "version": "3.13.1",
    "implementation": "cpython",
    "os": "macos",
    "arch": "aarch64",
    "libc": "none",
    "installed": false,
    "download_url": "https://github.com/astral-sh/python-build-standalone/releases/download/20250107/cpython-3.13.1%2B20250107-aarch64-apple-darwin-install_only.tar.gz"
  },
  {
    "key": "cpython-3.12.8-macos-aarch64-none",
    "version": "3.12.8",
    "implementation": "cpython",
    "os": "macos",
    "arch": "aarch64",
    "libc": "none",
    "installed": true,
    "path": "/Users/user/.local/share/uv/python/cpython-3.12.8-macos-aarch64-none/bin/python3.12"
  }
]

Examples

List all available Python versions

uv python list
Shows installed versions and latest patch of each minor version available for download.

List only installed versions

uv python list --only-installed

List all patch versions

uv python list --all-versions
Shows every patch release (3.12.0, 3.12.1, 3.12.2, etc.) instead of just the latest.

Filter by version

uv python list 3.12
Shows only Python 3.12.x versions.

Filter by implementation

uv python list pypy
Shows only PyPy installations and downloads.

List with download URLs

uv python list --show-urls

List all platforms and architectures

uv python list --all-platforms --all-arches
Shows distributions for all operating systems and CPU architectures.

Get machine-readable output

uv python list --output-format json

List only downloads (exclude installed)

uv python list --only-downloads

Check if a specific version is installed

uv python list 3.12.4 --only-installed

List all installed PyPy versions

uv python list pypy --only-installed

Export to JSON file

uv python list --output-format json > python-versions.json

Use Cases

Check what’s installed

uv python list --only-installed
Quickly see which Python versions are currently installed on your system.

Find available versions before installing

uv python list 3.13 --only-downloads
See what Python 3.13 versions are available for download.

Audit Python installations

uv python list --all-versions --only-installed --output-format json
Generate a complete inventory of installed Python versions in machine-readable format.

Check cross-platform availability

uv python list 3.12 --all-platforms --show-urls
Verify that a specific Python version is available for all platforms you need to support.

Scripting and automation

# Get list of installed Python 3.12 versions
INSTALLED=$(uv python list 3.12 --only-installed --output-format json | jq -r '.[].version')

# Install if not found
if [ -z "$INSTALLED" ]; then
  uv python install 3.12
fi

See Also

Build docs developers (and LLMs) love