The uv command is an extremely fast, all-in-one Python package and project manager developed by Astral. It serves as a unified replacement for multiple legacy tools like pip, pipx, poetry, pyenv, and virtualenv.
# To create a new Python project:
uv init
# To create a new Python project in a specific directory:
uv init <project-name>
# To add a dependency to the current project:
uv add <package>
# To add a development dependency to the current project:
uv add --dev <package>
# To remove a dependency from the current project:
uv remove <package>
# To sync the project environment with the lockfile:
uv sync
# To run a Python script inside the project environment:
uv run <script.py>
# To run a command inside the project environment:
uv run <command>
# To install a Python CLI tool globally in an isolated environment:
uv tool install <package>
# To run a Python CLI tool without permanently installing it:
uv tool run <package>
# To list installed Python CLI tools:
uv tool list
# To upgrade an installed Python CLI tool:
uv tool upgrade <package>
# To uninstall an installed Python CLI tool:
uv tool uninstall <package>
# To install a specific Python version:
uv python install <version>
# To install Python 3.12:
uv python install 3.12
# To uninstall Python 3.12:
uv python uninstall 3.12
# To list available Python versions:
uv python list
# To pin the current project to a specific Python version:
uv python pin <version>
# To pin the current project to Python 3.12:
uv python pin 3.12
# To install a package using uv's pip-compatible interface:
uv pip install <package>
# To install packages from a requirements file:
uv pip install --requirement requirements.txt
# To freeze installed packages:
uv pip freeze
# To compile dependencies into a requirements file:
uv pip compile pyproject.toml --output-file requirements.txt
# To create a virtual environment:
uv venv
# To create a virtual environment using a specific Python version:
uv venv --python <version>
# To create a virtual environment using Python 3.12:
uv venv --python 3.12