How to install UV¶
Official solution¶
Official Installation guide at https://docs.astral.sh/uv/getting-started/installation/
For security reasons, I personally don't like to directly execute an external shell script. I prefer to install the binaries myself.
Manual installation¶
If you are on Mac, you can directly download the binaries from the release on Github. https://github.com/astral-sh/uv/releases
Choose the uv-aarch64-apple-darwin.tar.gz file
Double click on the .tar.gz file to uncompress it
Copy the binaries to /usr/local/bin/
sudo cp uv-aarch64-apple-darwin/uv /usr/local/bin/
sudo cp uv-aarch64-apple-darwin/uvx /usr/local/bin/
Change the com.apple.quarantine file attribute to allow MacOs to execute the UV binaries.
sudo xattr -dr com.apple.quarantine /usr/local/bin/uv
sudo xattr -dr com.apple.quarantine /usr/local/bin/uvx
Check that uv is installed
uv help
An extremely fast Python package manager.
Usage: uv [OPTIONS] <COMMAND>
Commands:
auth Manage authentication
run Run a command or script
init Create a new project
add Add dependencies to the project
remove Remove dependencies from the project
version Read or update the project's version
sync Update the project's environment
lock Update the project's lockfile
export Export the project's lockfile to an alternate format
tree Display the project's dependency tree
format Format Python code in the project
tool Run and install commands provided by Python packages
python Manage Python versions and installations
pip Manage Python packages with a pip-compatible interface
venv Create a virtual environment
build Build Python packages into source distributions and wheels
publish Upload distributions to an index
cache Manage uv's cache
self Manage the uv executable
generate-shell-completion Generate shell completion
help Display documentation for a command
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
-V, --version Display the uv version
Use `uv help <command>` for more information on a specific command.