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

AWS Secrets Manager vs Parameter Store

Parameter Store SecureString or Secrets Manager for OpenAI and Anthropic keys on AWS: limits, rotation, Lambda caching, and the keyless STS option.

By DevToolLab Team•

AI Support Chatbot Cost: Buy vs Build

Intercom Fin, Zendesk AI agents and a custom GPT-5.4 Mini bot priced at 10,000 support chats a month, plus the volume where building your own pays off.

By DevToolLab Team•

Human-in-the-Loop AI Marketing Workflows

AI marketing agents can research and draft alone, but anything public should wait for a person. A six-step approval workflow, review checklist and permissions.

By DevToolLab Team•