mirror of https://github.com/astral-sh/uv
Improve the `uv python` CLI documentation (#5961)
This commit is contained in:
parent
e6d76dbf35
commit
d6c587c21c
|
|
@ -2,6 +2,8 @@ doc-valid-idents = [
|
||||||
"PyPI",
|
"PyPI",
|
||||||
"PubGrub",
|
"PubGrub",
|
||||||
"PyPy",
|
"PyPy",
|
||||||
|
"CPython",
|
||||||
|
"GraalPy",
|
||||||
".." # Include the defaults
|
".." # Include the defaults
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -246,6 +246,7 @@ pub enum Commands {
|
||||||
/// Manage Python projects.
|
/// Manage Python projects.
|
||||||
#[command(flatten)]
|
#[command(flatten)]
|
||||||
Project(Box<ProjectCommand>),
|
Project(Box<ProjectCommand>),
|
||||||
|
|
||||||
/// Run and manage tools provided by Python packages (experimental).
|
/// Run and manage tools provided by Python packages (experimental).
|
||||||
#[command(
|
#[command(
|
||||||
after_help = "Use `uv help tool` for more details.",
|
after_help = "Use `uv help tool` for more details.",
|
||||||
|
|
@ -293,6 +294,11 @@ pub enum Commands {
|
||||||
/// e.g., if `pypy` is requested, uv will first check if the virtual
|
/// e.g., if `pypy` is requested, uv will first check if the virtual
|
||||||
/// environment contains a PyPy interpreter then check if each executable in
|
/// environment contains a PyPy interpreter then check if each executable in
|
||||||
/// the path is a PyPy interpreter.
|
/// the path is a PyPy interpreter.
|
||||||
|
///
|
||||||
|
/// uv supports discovering CPython, PyPy, and GraalPy interpreters.
|
||||||
|
/// Unsupported interpreters will be skipped during discovery. If an
|
||||||
|
/// unsupported interpreter implementation is requested, uv will exit with
|
||||||
|
/// an error.
|
||||||
#[clap(verbatim_doc_comment)]
|
#[clap(verbatim_doc_comment)]
|
||||||
#[command(
|
#[command(
|
||||||
after_help = "Use `uv help python` for more details.",
|
after_help = "Use `uv help python` for more details.",
|
||||||
|
|
@ -2773,15 +2779,49 @@ pub struct PythonNamespace {
|
||||||
#[derive(Subcommand)]
|
#[derive(Subcommand)]
|
||||||
pub enum PythonCommand {
|
pub enum PythonCommand {
|
||||||
/// List the available Python installations.
|
/// 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.
|
||||||
|
///
|
||||||
|
/// The displayed versions are filtered by the `--python-preference` option,
|
||||||
|
/// i.e., if using `only-system`, no managed Python versions will be shown.
|
||||||
|
///
|
||||||
|
/// Use `--all-versions` to view all available patch versions.
|
||||||
|
///
|
||||||
|
/// Use `--only-installed` to omit available downloads.
|
||||||
List(PythonListArgs),
|
List(PythonListArgs),
|
||||||
|
|
||||||
/// Download and install Python versions.
|
/// Download and install Python versions.
|
||||||
|
///
|
||||||
|
/// Multiple Python versions may be requested.
|
||||||
|
///
|
||||||
|
/// Supports CPython and PyPy.
|
||||||
|
///
|
||||||
|
/// CPython distributions are downloaded from the `python-build-standalone` project.
|
||||||
|
///
|
||||||
|
/// Python versions are installed into the uv Python directory, which can be
|
||||||
|
/// retrieved with `uv python dir`. A `python` executable is not made
|
||||||
|
/// globally available, managed Python versions are only used in uv
|
||||||
|
/// commands or in active virtual environments.
|
||||||
|
///
|
||||||
|
/// See `uv help python` to view supported request formats.
|
||||||
Install(PythonInstallArgs),
|
Install(PythonInstallArgs),
|
||||||
|
|
||||||
/// Search for a Python installation.
|
/// Search for a Python installation.
|
||||||
|
///
|
||||||
|
/// Displays the path to the Python executable.
|
||||||
|
///
|
||||||
|
/// See `uv help python` to view supported request formats and details on
|
||||||
|
/// discovery behavior.
|
||||||
Find(PythonFindArgs),
|
Find(PythonFindArgs),
|
||||||
|
|
||||||
/// Pin to a specific Python version.
|
/// Pin to a specific Python version.
|
||||||
|
///
|
||||||
|
/// Writes the pinned version to a `.python-version` file, which is then
|
||||||
|
/// read by other uv commands when determining the required Python version.
|
||||||
|
///
|
||||||
|
/// See `uv help python` to view supported request formats.
|
||||||
Pin(PythonPinArgs),
|
Pin(PythonPinArgs),
|
||||||
|
|
||||||
/// Show the uv Python installation directory.
|
/// Show the uv Python installation directory.
|
||||||
|
|
@ -2794,15 +2834,21 @@ pub enum PythonCommand {
|
||||||
#[derive(Args)]
|
#[derive(Args)]
|
||||||
#[allow(clippy::struct_excessive_bools)]
|
#[allow(clippy::struct_excessive_bools)]
|
||||||
pub struct PythonListArgs {
|
pub struct PythonListArgs {
|
||||||
/// List all Python versions, including outdated patch versions.
|
/// List all Python versions, including old patch versions.
|
||||||
|
///
|
||||||
|
/// By default, only the latest patch version is shown for each minor version.
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
pub all_versions: bool,
|
pub all_versions: bool,
|
||||||
|
|
||||||
/// List Python installations for all platforms.
|
/// List Python downloads for all platforms.
|
||||||
|
///
|
||||||
|
/// By default, only downloads for the current platform are shown.
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
pub all_platforms: bool,
|
pub all_platforms: bool,
|
||||||
|
|
||||||
/// Only show installed Python versions, exclude available downloads.
|
/// Only show installed Python versions, exclude available downloads.
|
||||||
|
///
|
||||||
|
/// By default, available downloads for the current platform are shown.
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
pub only_installed: bool,
|
pub only_installed: bool,
|
||||||
}
|
}
|
||||||
|
|
@ -2821,6 +2867,9 @@ pub struct PythonInstallArgs {
|
||||||
pub targets: Vec<String>,
|
pub targets: Vec<String>,
|
||||||
|
|
||||||
/// Reinstall the requested Python version, if it's already installed.
|
/// Reinstall the requested Python version, if it's already installed.
|
||||||
|
///
|
||||||
|
/// By default, uv will exit successfully if the version is already
|
||||||
|
/// installed.
|
||||||
#[arg(long, short, alias = "force")]
|
#[arg(long, short, alias = "force")]
|
||||||
pub reinstall: bool,
|
pub reinstall: bool,
|
||||||
}
|
}
|
||||||
|
|
@ -2863,14 +2912,20 @@ pub struct PythonPinArgs {
|
||||||
/// Write the resolved Python interpreter path instead of the request.
|
/// Write the resolved Python interpreter path instead of the request.
|
||||||
///
|
///
|
||||||
/// Ensures that the exact same interpreter is used.
|
/// Ensures that the exact same interpreter is used.
|
||||||
|
///
|
||||||
|
/// This option is usually not safe to use when committing the
|
||||||
|
/// `.python-version` file to version control.
|
||||||
#[arg(long, overrides_with("resolved"))]
|
#[arg(long, overrides_with("resolved"))]
|
||||||
pub resolved: bool,
|
pub resolved: bool,
|
||||||
|
|
||||||
#[arg(long, overrides_with("no_resolved"), hide = true)]
|
#[arg(long, overrides_with("no_resolved"), hide = true)]
|
||||||
pub no_resolved: bool,
|
pub no_resolved: bool,
|
||||||
|
|
||||||
/// Avoid validating the Python pin against the workspace in the current directory or any parent
|
/// Avoid validating the Python pin is compatible with the workspace.
|
||||||
/// directory.
|
///
|
||||||
|
/// By default, a workspace is discovered in the current directory or any parent
|
||||||
|
/// directory. If a workspace is found, the Python pin is validated against
|
||||||
|
/// the workspace's `requires-python` constraint.
|
||||||
#[arg(long)]
|
#[arg(long)]
|
||||||
pub no_workspace: bool,
|
pub no_workspace: bool,
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -237,6 +237,11 @@ fn help_subcommand() {
|
||||||
environment contains a PyPy interpreter then check if each executable in
|
environment contains a PyPy interpreter then check if each executable in
|
||||||
the path is a PyPy interpreter.
|
the path is a PyPy interpreter.
|
||||||
|
|
||||||
|
uv supports discovering CPython, PyPy, and GraalPy interpreters.
|
||||||
|
Unsupported interpreters will be skipped during discovery. If an
|
||||||
|
unsupported interpreter implementation is requested, uv will exit with
|
||||||
|
an error.
|
||||||
|
|
||||||
Usage: uv python [OPTIONS] <COMMAND>
|
Usage: uv python [OPTIONS] <COMMAND>
|
||||||
|
|
||||||
Commands:
|
Commands:
|
||||||
|
|
@ -362,7 +367,19 @@ fn help_subsubcommand() {
|
||||||
success: true
|
success: true
|
||||||
exit_code: 0
|
exit_code: 0
|
||||||
----- stdout -----
|
----- stdout -----
|
||||||
Download and install Python versions
|
Download and install Python versions.
|
||||||
|
|
||||||
|
Multiple Python versions may be requested.
|
||||||
|
|
||||||
|
Supports CPython and PyPy.
|
||||||
|
|
||||||
|
CPython distributions are downloaded from the `python-build-standalone` project.
|
||||||
|
|
||||||
|
Python versions are installed into the uv Python directory, which can be retrieved with `uv python
|
||||||
|
dir`. A `python` executable is not made globally available, managed Python versions are only used in
|
||||||
|
uv commands or in active virtual environments.
|
||||||
|
|
||||||
|
See `uv help python` to view supported request formats.
|
||||||
|
|
||||||
Usage: uv python install [OPTIONS] [TARGETS]...
|
Usage: uv python install [OPTIONS] [TARGETS]...
|
||||||
|
|
||||||
|
|
@ -378,7 +395,9 @@ fn help_subsubcommand() {
|
||||||
|
|
||||||
Options:
|
Options:
|
||||||
-r, --reinstall
|
-r, --reinstall
|
||||||
Reinstall the requested Python version, if it's already installed
|
Reinstall the requested Python version, if it's already installed.
|
||||||
|
|
||||||
|
By default, uv will exit successfully if the version is already installed.
|
||||||
|
|
||||||
Cache options:
|
Cache options:
|
||||||
-n, --no-cache
|
-n, --no-cache
|
||||||
|
|
|
||||||
|
|
@ -2836,6 +2836,11 @@ e.g., if `pypy` is requested, uv will first check if the virtual
|
||||||
environment contains a PyPy interpreter then check if each executable in
|
environment contains a PyPy interpreter then check if each executable in
|
||||||
the path is a PyPy interpreter.
|
the path is a PyPy interpreter.
|
||||||
|
|
||||||
|
uv supports discovering CPython, PyPy, and GraalPy interpreters.
|
||||||
|
Unsupported interpreters will be skipped during discovery. If an
|
||||||
|
unsupported interpreter implementation is requested, uv will exit with
|
||||||
|
an error.
|
||||||
|
|
||||||
<h3 class="cli-reference">Usage</h3>
|
<h3 class="cli-reference">Usage</h3>
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
@ -2860,7 +2865,15 @@ uv python [OPTIONS] <COMMAND>
|
||||||
|
|
||||||
### uv python list
|
### uv python list
|
||||||
|
|
||||||
List the available Python installations
|
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.
|
||||||
|
|
||||||
|
The displayed versions are filtered by the `--python-preference` option, i.e., if using `only-system`, no managed Python versions will be shown.
|
||||||
|
|
||||||
|
Use `--all-versions` to view all available patch versions.
|
||||||
|
|
||||||
|
Use `--only-installed` to omit available downloads.
|
||||||
|
|
||||||
<h3 class="cli-reference">Usage</h3>
|
<h3 class="cli-reference">Usage</h3>
|
||||||
|
|
||||||
|
|
@ -2870,9 +2883,13 @@ uv python list [OPTIONS]
|
||||||
|
|
||||||
<h3 class="cli-reference">Options</h3>
|
<h3 class="cli-reference">Options</h3>
|
||||||
|
|
||||||
<dl class="cli-reference"><dt><code>--all-platforms</code></dt><dd><p>List Python installations for all platforms</p>
|
<dl class="cli-reference"><dt><code>--all-platforms</code></dt><dd><p>List Python downloads for all platforms.</p>
|
||||||
|
|
||||||
</dd><dt><code>--all-versions</code></dt><dd><p>List all Python versions, including outdated patch versions</p>
|
<p>By default, only downloads for the current platform are shown.</p>
|
||||||
|
|
||||||
|
</dd><dt><code>--all-versions</code></dt><dd><p>List all Python versions, including old patch versions.</p>
|
||||||
|
|
||||||
|
<p>By default, only the latest patch version is shown for each minor version.</p>
|
||||||
|
|
||||||
</dd><dt><code>--cache-dir</code> <i>cache-dir</i></dt><dd><p>Path to the cache directory.</p>
|
</dd><dt><code>--cache-dir</code> <i>cache-dir</i></dt><dd><p>Path to the cache directory.</p>
|
||||||
|
|
||||||
|
|
@ -2918,7 +2935,9 @@ uv python list [OPTIONS]
|
||||||
|
|
||||||
<p>When disabled, uv will only use locally cached data and locally available files.</p>
|
<p>When disabled, uv will only use locally cached data and locally available files.</p>
|
||||||
|
|
||||||
</dd><dt><code>--only-installed</code></dt><dd><p>Only show installed Python versions, exclude available downloads</p>
|
</dd><dt><code>--only-installed</code></dt><dd><p>Only show installed Python versions, exclude available downloads.</p>
|
||||||
|
|
||||||
|
<p>By default, available downloads for the current platform are shown.</p>
|
||||||
|
|
||||||
</dd><dt><code>--python-preference</code> <i>python-preference</i></dt><dd><p>Whether to prefer uv-managed or system Python installations.</p>
|
</dd><dt><code>--python-preference</code> <i>python-preference</i></dt><dd><p>Whether to prefer uv-managed or system Python installations.</p>
|
||||||
|
|
||||||
|
|
@ -2947,7 +2966,17 @@ uv python list [OPTIONS]
|
||||||
|
|
||||||
### uv python install
|
### uv python install
|
||||||
|
|
||||||
Download and install Python versions
|
Download and install Python versions.
|
||||||
|
|
||||||
|
Multiple Python versions may be requested.
|
||||||
|
|
||||||
|
Supports CPython and PyPy.
|
||||||
|
|
||||||
|
CPython distributions are downloaded from the `python-build-standalone` project.
|
||||||
|
|
||||||
|
Python versions are installed into the uv Python directory, which can be retrieved with `uv python dir`. A `python` executable is not made globally available, managed Python versions are only used in uv commands or in active virtual environments.
|
||||||
|
|
||||||
|
See `uv help python` to view supported request formats.
|
||||||
|
|
||||||
<h3 class="cli-reference">Usage</h3>
|
<h3 class="cli-reference">Usage</h3>
|
||||||
|
|
||||||
|
|
@ -3028,7 +3057,9 @@ uv python install [OPTIONS] [TARGETS]...
|
||||||
</ul>
|
</ul>
|
||||||
</dd><dt><code>--quiet</code>, <code>-q</code></dt><dd><p>Do not print any output</p>
|
</dd><dt><code>--quiet</code>, <code>-q</code></dt><dd><p>Do not print any output</p>
|
||||||
|
|
||||||
</dd><dt><code>--reinstall</code>, <code>-r</code></dt><dd><p>Reinstall the requested Python version, if it’s already installed</p>
|
</dd><dt><code>--reinstall</code>, <code>-r</code></dt><dd><p>Reinstall the requested Python version, if it’s already installed.</p>
|
||||||
|
|
||||||
|
<p>By default, uv will exit successfully if the version is already installed.</p>
|
||||||
|
|
||||||
</dd><dt><code>--verbose</code>, <code>-v</code></dt><dd><p>Use verbose output.</p>
|
</dd><dt><code>--verbose</code>, <code>-v</code></dt><dd><p>Use verbose output.</p>
|
||||||
|
|
||||||
|
|
@ -3040,7 +3071,11 @@ uv python install [OPTIONS] [TARGETS]...
|
||||||
|
|
||||||
### uv python find
|
### uv python find
|
||||||
|
|
||||||
Search for a Python installation
|
Search for a Python installation.
|
||||||
|
|
||||||
|
Displays the path to the Python executable.
|
||||||
|
|
||||||
|
See `uv help python` to view supported request formats and details on discovery behavior.
|
||||||
|
|
||||||
<h3 class="cli-reference">Usage</h3>
|
<h3 class="cli-reference">Usage</h3>
|
||||||
|
|
||||||
|
|
@ -3129,7 +3164,11 @@ uv python find [OPTIONS] [REQUEST]
|
||||||
|
|
||||||
### uv python pin
|
### uv python pin
|
||||||
|
|
||||||
Pin to a specific Python version
|
Pin to a specific Python version.
|
||||||
|
|
||||||
|
Writes the pinned version to a `.python-version` file, which is then read by other uv commands when determining the required Python version.
|
||||||
|
|
||||||
|
See `uv help python` to view supported request formats.
|
||||||
|
|
||||||
<h3 class="cli-reference">Usage</h3>
|
<h3 class="cli-reference">Usage</h3>
|
||||||
|
|
||||||
|
|
@ -3189,7 +3228,9 @@ uv python pin [OPTIONS] [REQUEST]
|
||||||
|
|
||||||
</dd><dt><code>--no-python-downloads</code></dt><dd><p>Disable automatic downloads of Python</p>
|
</dd><dt><code>--no-python-downloads</code></dt><dd><p>Disable automatic downloads of Python</p>
|
||||||
|
|
||||||
</dd><dt><code>--no-workspace</code></dt><dd><p>Avoid validating the Python pin against the workspace in the current directory or any parent directory</p>
|
</dd><dt><code>--no-workspace</code></dt><dd><p>Avoid validating the Python pin is compatible with the workspace.</p>
|
||||||
|
|
||||||
|
<p>By default, a workspace is discovered in the current directory or any parent directory. If a workspace is found, the Python pin is validated against the workspace’s <code>requires-python</code> constraint.</p>
|
||||||
|
|
||||||
</dd><dt><code>--offline</code></dt><dd><p>Disable network access.</p>
|
</dd><dt><code>--offline</code></dt><dd><p>Disable network access.</p>
|
||||||
|
|
||||||
|
|
@ -3216,6 +3257,8 @@ uv python pin [OPTIONS] [REQUEST]
|
||||||
|
|
||||||
<p>Ensures that the exact same interpreter is used.</p>
|
<p>Ensures that the exact same interpreter is used.</p>
|
||||||
|
|
||||||
|
<p>This option is usually not safe to use when committing the <code>.python-version</code> file to version control.</p>
|
||||||
|
|
||||||
</dd><dt><code>--verbose</code>, <code>-v</code></dt><dd><p>Use verbose output.</p>
|
</dd><dt><code>--verbose</code>, <code>-v</code></dt><dd><p>Use verbose output.</p>
|
||||||
|
|
||||||
<p>You can configure fine-grained logging using the <code>RUST_LOG</code> environment variable. (<https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives>)</p>
|
<p>You can configure fine-grained logging using the <code>RUST_LOG</code> environment variable. (<https://docs.rs/tracing-subscriber/latest/tracing_subscriber/filter/struct.EnvFilter.html#directives>)</p>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue