How to install uv on Linux
uv is a Python package and project manager written in Rust. This guide covers how to install it on Linux.
Standalone installer (recommended)
The standalone installer is the recommended method because it requires no prerequisites: no Python, no package manager, nothing. It downloads a prebuilt binary and adds it to your PATH.
curl -LsSf https://astral.sh/uv/install.sh | shIf your system doesn’t have curl, use wget instead:
wget -qO- https://astral.sh/uv/install.sh | shAfter running the installer, open a new terminal window so the updated PATH takes effect.
Alternative installation methods
The standalone installer works for most people, but you may prefer a different method depending on your setup.
Homebrew
If you already use Homebrew to manage system tools, installing uv through it keeps everything in one place:
brew install uvHomebrew handles PATH configuration automatically. The tradeoff: Homebrew updates uv on its own schedule, so you may lag behind the latest release by a few days.
pip or pipx
If you have Python installed and prefer to manage tools through pip:
pip install uvOr, to install it in an isolated environment with pipx:
pipx install uvThis approach creates a circular dependency (you need Python to install the tool that manages Python), so the standalone installer is usually a better choice.
Shell completions
uv can generate tab-completion scripts for your shell. This gives you autocomplete for commands, options, and arguments.
echo 'eval "$(uv generate-shell-completion bash)"' >> ~/.bashrc
source ~/.bashrcVerifying installation
After installation, open a new terminal and verify uv is working:
uv --versionYou should see output like:
uv 0.x.yIf you get command not found, see the troubleshooting section below.
Troubleshooting
uv: command not found after installing
The standalone installer adds uv to ~/.local/bin by default (or $XDG_BIN_HOME if set). If your shell doesn’t include that directory in PATH, the command won’t be found.
Fix: Open a new terminal window. The installer modifies your shell profile (.bashrc, .zshrc, .config/fish/config.fish), but those changes only apply to new shell sessions. If that doesn’t work, check that the directory is on your PATH:
echo $PATH | tr ':' '\n' | grep .local/binIf nothing prints, add it manually:
# For Bash:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
# For Zsh:
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrcPermission errors
If the installer fails with a permission error, the target directory may be owned by root. Avoid using sudo with the installer. Instead, ensure ~/.local/bin exists and is owned by your user:
mkdir -p ~/.local/bin
sudo chown -R $(whoami) ~/.local/binThen re-run the install script.