# Inspiration
| Tool | Date added | Version |
| --------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- |
| [`hatch python`](https://hatch.pypa.io/latest/cli/reference/#hatch-python) | [2023-12-11](https://hatch.pypa.io/latest/history/hatch/#hatch-v1.8.0) | [1.8.0](https://hatch.pypa.io/latest/history/hatch/#hatch-v1.8.0) |
| [`pdm python`](https://pdm-project.org/latest/reference/cli/#python) | [2024-03-27](https://pdm-project.org/en/latest/dev/changelog/#release-v2130-2024-03-27) | [2.13.0](https://pdm-project.org/en/latest/dev/changelog/#release-v2130-2024-03-27) |
| [`uv python`](https://docs.astral.sh/uv/reference/cli/#uv-python) | [2024-08-24](https://astral.sh/blog/uv-unified-python-packaging) | [0.3](https://astral.sh/blog/uv-unified-python-packaging) |
| [`poetry python`](https://python-poetry.org/docs/cli/#python) | [2025-02-15](https://python-poetry.org/history/#210---2025-02-15) | [2.1.0](https://python-poetry.org/history/#210---2025-02-15) |
| [`pymanager install`](https://peps.python.org/pep-0773/#install-subcommand) | [2025-10-08](https://github.com/python/pymanager/releases/tag/25.0) | [25.0](https://github.com/python/pymanager/releases/tag/25.0) |
## Hatch
```
Usage: hatch python install [OPTIONS] NAMES...
Install Python distributions.
You may select `all` to install all compatible distributions:
```
hatch python install all
```
You can set custom sources for distributions by setting the
`HATCH_PYTHON_SOURCE_<NAME>` environment variable where `<NAME>` is the
uppercased version of the distribution name with periods replaced by
underscores e.g. `HATCH_PYTHON_SOURCE_PYPY3_10`.
Options:
--private Do not add distributions to the user PATH
-u, --update Update existing installations
-d, --dir TEXT The directory in which to install distributions, overriding
configuration
-h, --help Show this message and exit.
```
## PDM
```
usage: pdm python install [-h] [-v | -q] [--list] [--min] [version]
Install a Python interpreter with PDM
positional arguments:
version The Python version to install (e.g.
[email protected]). If left
empty, highest cPython version that matches this
platform/arch is installed. If pyproject.toml with requires-
python is available, this is considered as well.
options:
-h, --help Show this help message and exit.
-v, --verbose Use `-v` for detailed output and `-vv` for more detailed
-q, --quiet Suppress output
--list, -l List all available Python versions
--min Use minimum instead of highest version for installation if
`version` is left empty
```
## uv
```
Download and install Python versions
Usage: uv python install [OPTIONS] [TARGETS]...
Arguments:
[TARGETS]... The Python version(s) to install [env: UV_PYTHON=]
Options:
-i, --install-dir <INSTALL_DIR>
The directory to store the Python installation in [env:
UV_PYTHON_INSTALL_DIR=]
--no-bin
Do not install a Python executable into the `bin` directory
--no-registry
Do not register the Python installation in the Windows registry
--mirror <MIRROR>
Set the URL to use as the source for downloading Python installations
--pypy-mirror <PYPY_MIRROR>
Set the URL to use as the source for downloading PyPy installations
--python-downloads-json-url <PYTHON_DOWNLOADS_JSON_URL>
URL pointing to JSON of custom Python installations
-r, --reinstall
Reinstall the requested Python version, if it's already installed
-f, --force
Replace existing Python executables during installation
-U, --upgrade
Upgrade existing Python installations to the latest patch version
--default
Use as the default Python version
--compile-bytecode
Compile Python's standard library to bytecode after installation [env:
UV_COMPILE_BYTECODE=]
Cache options:
-n, --no-cache Avoid reading from or writing to the cache,
instead using a temporary directory for the
duration of the operation [env: UV_NO_CACHE=]
--cache-dir <CACHE_DIR> Path to the cache directory [env: UV_CACHE_DIR=]
Python options:
--managed-python Require use of uv-managed Python versions [env:
UV_MANAGED_PYTHON=]
--no-managed-python Disable use of uv-managed Python versions [env:
UV_NO_MANAGED_PYTHON=]
--no-python-downloads Disable automatic downloads of Python. [env:
"UV_PYTHON_DOWNLOADS=never"]
Global options:
-q, --quiet...
Use quiet output
-v, --verbose...
Use verbose output
--color <COLOR_CHOICE>
Control the use of color in output [possible values: auto, always,
never]
--native-tls
Whether to load TLS certificates from the platform's native store
[env: UV_NATIVE_TLS=]
--offline
Disable network access [env: UV_OFFLINE=]
--allow-insecure-host <ALLOW_INSECURE_HOST>
Allow insecure connections to a host [env: UV_INSECURE_HOST=]
--no-progress
Hide all progress outputs [env: UV_NO_PROGRESS=]
--directory <DIRECTORY>
Change to the given directory prior to running the command [env:
UV_WORKING_DIR=]
--project <PROJECT>
Discover a project in the given directory [env: UV_PROJECT=]
--config-file <CONFIG_FILE>
The path to a `uv.toml` file to use for configuration [env:
UV_CONFIG_FILE=]
--no-config
Avoid discovering configuration files (`pyproject.toml`, `uv.toml`)
[env: UV_NO_CONFIG=]
-h, --help
Display the concise help for this command
```
## Poetry
```
Description:
Install the specified Python version from the Python Standalone Builds project. (experimental feature)
Usage:
python install [options] [--] <python>
Arguments:
python The python version to install.
Options:
-c, --clean Clean up installation if check fails.
-t, --free-threaded Use free-threaded version if available.
-i, --implementation=IMPLEMENTATION Python implementation to use. (cpython, pypy) [default: "cpython"]
-r, --reinstall Reinstall if installation already exists.
-h, --help Display help for the given command. When no command is given display help for the list command.
-q, --quiet Do not output any message.
-V, --version Display this application version.
--ansi Force ANSI output.
--no-ansi Disable ANSI output.
-n, --no-interaction Do not ask any interactive question.
--no-plugins Disables plugins.
--no-cache Disables Poetry source caches.
-P, --project=PROJECT Specify another path as the project root. All command-line arguments will be resolved relative to the current working directory.
-C, --directory=DIRECTORY The working directory for the Poetry command (defaults to the current working directory). All command-line arguments will be resolved relative to the given directory.
-v|vv|vvv, --verbose Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug.
```
## PyManager
```powershell