Files
uv/docs/getting-started/installation.md
T
Zanie Blue 262ca73965 Remove the configuration section in favor of concepts / reference (#13842)
Extends https://github.com/astral-sh/uv/pull/13841 — I'll drop that
commit later after that pull request merges but it's small.

I find the split into a "Configuration" section awkward and don't think
it's helping us. Everything moved into the "Concepts" section, except
the "Environment variables" page which definitely belongs in the
reference and the "Installer" page which is fairly niche and seems
better in the reference.

Before / After


<img
src="https://github.com/user-attachments/assets/80d8304b-17da-4900-a5f4-c3ccac96fcc5"
width="400">
2025-06-05 17:09:49 +00:00

278 lines
6.6 KiB
Markdown

# Installing uv
## Installation methods
Install uv with our standalone installers or your package manager of choice.
### Standalone installer
uv provides a standalone installer to download and install uv:
=== "macOS and Linux"
Use `curl` to download the script and execute it with `sh`:
```console
$ curl -LsSf https://astral.sh/uv/install.sh | sh
```
If your system doesn't have `curl`, you can use `wget`:
```console
$ wget -qO- https://astral.sh/uv/install.sh | sh
```
Request a specific version by including it in the URL:
```console
$ curl -LsSf https://astral.sh/uv/0.7.11/install.sh | sh
```
=== "Windows"
Use `irm` to download the script and execute it with `iex`:
```pwsh-session
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
```
Changing the [execution policy](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.core/about/about_execution_policies?view=powershell-7.4#powershell-execution-policies) allows running a script from the internet.
Request a specific version by including it in the URL:
```pwsh-session
PS> powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.7.11/install.ps1 | iex"
```
!!! tip
The installation script may be inspected before use:
=== "macOS and Linux"
```console
$ curl -LsSf https://astral.sh/uv/install.sh | less
```
=== "Windows"
```pwsh-session
PS> powershell -c "irm https://astral.sh/uv/install.ps1 | more"
```
Alternatively, the installer or binaries can be downloaded directly from [GitHub](#github-releases).
See the reference documentation on the [installer](../reference/installer.md) for details on
customizing your uv installation.
### PyPI
For convenience, uv is published to [PyPI](https://pypi.org/project/uv/).
If installing from PyPI, we recommend installing uv into an isolated environment, e.g., with `pipx`:
```console
$ pipx install uv
```
However, `pip` can also be used:
```console
$ pip install uv
```
!!! note
uv ships with prebuilt distributions (wheels) for many platforms; if a wheel is not available for a given
platform, uv will be built from source, which requires a Rust toolchain. See the
[contributing setup guide](https://github.com/astral-sh/uv/blob/main/CONTRIBUTING.md#setup)
for details on building uv from source.
### Cargo
uv is available via Cargo, but must be built from Git rather than [crates.io](https://crates.io) due
to its dependency on unpublished crates.
```console
$ cargo install --git https://github.com/astral-sh/uv uv
```
### Homebrew
uv is available in the core Homebrew packages.
```console
$ brew install uv
```
### WinGet
uv is available via [WinGet](https://winstall.app/apps/astral-sh.uv).
```console
$ winget install --id=astral-sh.uv -e
```
### Scoop
uv is available via [Scoop](https://scoop.sh/#/apps?q=uv).
```console
$ scoop install main/uv
```
### Docker
uv provides a Docker image at
[`ghcr.io/astral-sh/uv`](https://github.com/astral-sh/uv/pkgs/container/uv).
See our guide on [using uv in Docker](../guides/integration/docker.md) for more details.
### GitHub Releases
uv release artifacts can be downloaded directly from
[GitHub Releases](https://github.com/astral-sh/uv/releases).
Each release page includes binaries for all supported platforms as well as instructions for using
the standalone installer via `github.com` instead of `astral.sh`.
## Upgrading uv
When uv is installed via the standalone installer, it can update itself on-demand:
```console
$ uv self update
```
!!! tip
Updating uv will re-run the installer and can modify your shell profiles. To disable this
behavior, set `INSTALLER_NO_MODIFY_PATH=1`.
When another installation method is used, self-updates are disabled. Use the package manager's
upgrade method instead. For example, with `pip`:
```console
$ pip install --upgrade uv
```
## Shell autocompletion
!!! tip
You can run `echo $SHELL` to help you determine your shell.
To enable shell autocompletion for uv commands, run one of the following:
=== "Bash"
```bash
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
```
=== "Zsh"
```bash
echo 'eval "$(uv generate-shell-completion zsh)"' >> ~/.zshrc
```
=== "fish"
```bash
echo 'uv generate-shell-completion fish | source' > ~/.config/fish/completions/uv.fish
```
=== "Elvish"
```bash
echo 'eval (uv generate-shell-completion elvish | slurp)' >> ~/.elvish/rc.elv
```
=== "PowerShell / pwsh"
```powershell
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Add-Content -Path $PROFILE -Value '(& uv generate-shell-completion powershell) | Out-String | Invoke-Expression'
```
To enable shell autocompletion for uvx, run one of the following:
=== "Bash"
```bash
echo 'eval "$(uvx --generate-shell-completion bash)"' >> ~/.bashrc
```
=== "Zsh"
```bash
echo 'eval "$(uvx --generate-shell-completion zsh)"' >> ~/.zshrc
```
=== "fish"
```bash
echo 'uvx --generate-shell-completion fish | source' > ~/.config/fish/completions/uvx.fish
```
=== "Elvish"
```bash
echo 'eval (uvx --generate-shell-completion elvish | slurp)' >> ~/.elvish/rc.elv
```
=== "PowerShell / pwsh"
```powershell
if (!(Test-Path -Path $PROFILE)) {
New-Item -ItemType File -Path $PROFILE -Force
}
Add-Content -Path $PROFILE -Value '(& uvx --generate-shell-completion powershell) | Out-String | Invoke-Expression'
```
Then restart the shell or source the shell config file.
## Uninstallation
If you need to remove uv from your system, follow these steps:
1. Clean up stored data (optional):
```console
$ uv cache clean
$ rm -r "$(uv python dir)"
$ rm -r "$(uv tool dir)"
```
!!! tip
Before removing the binaries, you may want to remove any data that uv has stored.
2. Remove the uv and uvx binaries:
=== "macOS and Linux"
```console
$ rm ~/.local/bin/uv ~/.local/bin/uvx
```
=== "Windows"
```pwsh-session
PS> rm $HOME\.local\bin\uv.exe
PS> rm $HOME\.local\bin\uvx.exe
```
!!! note
Prior to 0.5.0, uv was installed into `~/.cargo/bin`. The binaries can be removed from there to
uninstall. Upgrading from an older version will not automatically remove the binaries from
`~/.cargo/bin`.
## Next steps
See the [first steps](./first-steps.md) or jump straight to the [guides](../guides/index.md) to
start using uv.