Python UV Package Manager
UV is a fast Python package & project manager written in Rust.
What is UV?
UV (pronounced “you-vee”) is a fast, all-in-one Python package & project manager written in Rust that can replace:
pipvirtualenvpip-toolspipxpyenv
Getting started
To get started, you can install UV using a standalone installer or via PyPI/pipx:
curl -LsSf https://astral.sh/uv/install.sh | sh
Or on Windows:
irm https://astral.sh/uv/install.ps1 | iex
Once installed, commands like uv init, uv add, uv lock, uv sync, uv run, and uv python install let you manage your entire Python project lifecycle from one place ([Real Python][3], [Bit Doze][11], [Ricky Rick][13], [Astral Docs][8]).
Start a project
uv init qa_tests
cd qa_tests
What you get:
.venv/automatically createdpyproject.tomlfor dependency trackinguv.lockfor reproducible installs
Add dependencies
Example for a Selenium + Pytest setup:
uv add pytest requests selenium allure-pytest
💡 No pip install or venv activate needed — UV handles both.
Run Without Activating venv
uv run main.py
- This runs inside your managed virtual environment automatically.
Lock Dependencies for CI/CD
Lock your environment:
uv lock
Then in CI:
uv sync --frozen
Guarantees project runs on exactly the same versions as dev.
Manage Python Versions Per Project
For example, pin to Python 3.11 for your project:
uv python install 3.11
uv python pin 3.11
Your teammates and CI runners will use the same version.
Upgrade or Audit Packages
uv upgrade
uv tree
uv upgrade→ updates dependencies within your constraintsuv tree→ shows dependency tree (great for debugging conflicts)