Back to all posts
Guide
7 min read

uv in 2026: The Python Tool That Replaced pip, Poetry, pyenv, and virtualenv All at Once

DevToolLab Team

DevToolLab Team

June 8, 2026

uv in 2026: The Python Tool That Replaced pip, Poetry, pyenv, and virtualenv All at Once

Installing 23 packages from a warm cache takes pip 6.6 seconds. The same install with uv takes 0.12 seconds. For a larger project - Django plus Celery plus Pandas plus scikit-learn - pip finishes in roughly 90 seconds on a cold cache. uv finishes in 8 seconds.

That speed difference is real, but it is not the main reason developers are switching. uv is a single binary that replaces five separate tools: pip, pip-tools, virtualenv, pyenv, and pipx. You stop juggling versions of multiple installers and start using one coherent tool with consistent commands.

In March 2026, OpenAI acquired Astral - the company behind uv - to integrate it into their Codex AI coding platform. Both uv and its companion linter Ruff remain MIT-licensed and actively developed in the open.

What uv Replaces

The old Python project setup looked like this:

Bash
brew install pyenv && pyenv install 3.11.0 && pyenv local 3.11.0
python -m venv .venv && source .venv/bin/activate
pip install pip-tools && pip-compile requirements.in && pip-sync requirements.txt

Five tools, five config formats, five upgrade cycles. uv replaces the entire stack:

Bash
uv init my-project
cd my-project
uv add django celery pandas scikit-learn
uv run python manage.py runserver
Old Tooluv Equivalent
pyenv install 3.12uv python install 3.12
pyenv local 3.11uv python pin 3.11
python -m venv .venvuv venv
pip install requestsuv add requests
pip install -r requirements.txtuv sync
pip-compile requirements.inuv lock
pipx install blackuv tool install black

Installation

Bash
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# Self-update
uv self update

uv is a single static binary with no Python dependency. Once installed it manages its own updates.

Official resources: GitHub · Docs · PyPI · Changelog

Core Workflows

New Project

Bash
uv init my-api && cd my-api
uv add fastapi uvicorn[standard]
uv add --dev pytest httpx
uv run uvicorn app.main:app --reload

uv add updates pyproject.toml, regenerates uv.lock, and installs into .venv in one step. No activation dance - uv run handles it transparently.

Python Version Management

Bash
uv python install 3.11 3.12 3.13
uv python pin 3.12          # writes .python-version
uv run --python 3.11 python --version

uv reads existing .python-version files created by pyenv, so switching from pyenv requires no file changes.

Global CLI Tools (Replaces pipx)

Bash
uv tool install ruff
uv tool run cowsay "Hello from uv"   # run once without installing
uv tool upgrade ruff

Performance

Benchmarked on a 200-package lockfile with warm cache on an M2 MacBook:

ToolResolveInstallTotal
pip8.1s12.4s20.5s
Poetry6.2s9.8s16.0s
uv0.4s1.1s1.5s

The speed difference is most impactful in CI/CD. A pip install step that takes 2 minutes on every push drops to 10-15 seconds with uv.

Migrating an Existing Project

From pip + requirements.txt

The uv pip subcommand is a drop-in replacement - every pip flag works identically, zero project changes required:

Bash
uv pip install -r requirements.txt
uv pip freeze > requirements.txt

Once comfortable, move to full project management:

Bash
uv init --no-workspace
uv add $(cat requirements.txt | grep -v '^#' | tr '\n' ' ')

From Poetry

uv tool install migrate-to-uv
migrate-to-uv

This converts [tool.poetry] sections to standard [project] format and generates uv.lock from your existing poetry.lock.

From pyenv

uv reads existing .python-version files unchanged. Run uv python install 3.12 once and you are done.

uv in CI/CD

yaml
- name: Install uv
  uses: astral-sh/setup-uv@v5
  with:
    version: "latest"
    enable-cache: true

- name: Install dependencies
  run: uv sync --frozen

- name: Run tests
  run: uv run pytest tests/ --tb=short

--frozen installs exactly what is in uv.lock without attempting updates - the right behavior for CI. enable-cache: true caches the package cache between runs, so subsequent builds complete in seconds.

When uv Falls Short

conda is not replaced. If you need non-Python dependencies (CUDA libraries, compiled C extensions), conda still handles that. uv manages PyPI packages only.

No plugin system. uv keeps it simple but is not extensible the way some pip plugins are.

Legacy setup.py packages occasionally need uv pip install --no-build-isolation.

For the vast majority of Python projects - web services, data pipelines, CLI tools, ML training scripts - uv handles everything.

Useful Tools for uv Workflows

The TOML to JSON Converter lets you inspect pyproject.toml with any JSON tool - useful when debugging dependency resolution. The YAML Formatter and YAML Validator clean up GitHub Actions workflow files. The Diff Checker makes reviewing verbose uv.lock changes in a PR much more readable.

Conclusion

uv is a full replacement for five separate tools, runs 10-100x faster, and ships as a single binary. The migration is low-risk: start with uv pip as a drop-in pip replacement, then move to uv init and uv add on your next new project. With OpenAI backing and 45k+ GitHub stars, it is infrastructure at this point.

If you are still running pip install -r requirements.txt manually, this week is a reasonable time to stop.

Related reading: Bun vs Node.js vs Deno 2 in 2026 covers the same "one fast tool replacing the old stack" story in the JavaScript ecosystem.

Related Posts

Best AI Release Management Tools in 2026: Which Ones Actually Roll Back

Harness AI Verification, Octopus Deploy Recovery Agent, LaunchDarkly guarded rollouts and Statsig compared on what their AI does when a deploy goes wrong, plus the open-source controllers that revert a release on their own: Argo Rollouts and Flagger.

By DevToolLab Team

Understanding Measurement Conversion Made Easy

Measurement conversion is not as complicated as it looks. A plain guide to length, weight, and temperature units, how decimal and binary number systems relate, and when to convert by hand instead of reaching for a tool.

By DevToolLab Team

What Is SOC 2 Type 2? Scope and Period

A SOC 2 Type 2 report covers how controls operated across a period, not a single day. Here is what the AICPA standard actually requires, why no rule fixes the window at 12 months, and the 2026 warnings from the AICPA's own SOC 2 Working Group.

By DevToolLab Team