| single |
# [`python-discovery`]
[PyPI]
[Supported Python versions]
[Downloads]
[check]
[Documentation Status]
## What is python-discovery?
`python-discovery` is a library for discovering Python interpreters
installed on your machine. You may have multiple
Python versions from system packages, [pyenv], [mise],
[asdf], [uv], or the Windows registry (PEP 514). This library finds
the right one for you.
Give it a requirement like `python3.12` or `>=3.11,<3.13`, and it searches
all known locations, verifies each candidate,
and returns detailed metadata about the match. Results are cached to disk
so repeated lookups are fast.
## Usage
```python
from pathlib import Path
from python_discovery import DiskCache, get_interpreter
cache = DiskCache(root=Path("~/.cache/python-discovery").expanduser())
result = get_interpreter("python3.12", cache=cache)
if result is not None:
print(result.executable) # /usr/bin/python3.12
print(result.implementation) # CPython
print(result.version_info[:3]) # (3, 12, 1)
```
The `get_interpreter()` function accepts various specification formats:
- Absolute path: `/usr/bin/python3.12`
- Version: `3.12`
- Implementation prefix: `cpython3.12`
- PEP 440 specifier: `>=3.10`, `>=3.11,<3.13`
## Documentation
Full documentation is available at [python-discovery.readthedocs.io]
|