UV replaced my entire Python toolchain
2025-02-05 dev 244 words 1 min
UV replaced pip, virtualenv, pipenv, poetry, and pyenv. One tool. Installs in seconds. Runs everything faster.
UV replaced pip, virtualenv, pipenv, poetry, and pyenv. One tool. Installs in seconds. Runs everything faster.
Install
curl -LsSf https://astral.sh/uv/install.sh | sh Beyond Python Projects
UV isn’t just for managing Python projects. uvx runs any Python CLI tool without installing it globally – replacing things you’d normally install with brew or pipx.
uvx marimo # reactive notebooks
uvx harlequin # SQL IDE in your terminal
uvx ruff check . # lint Python
uvx yt-dlp URL # download video
uvx llm "question" # CLI access to LLMs Install tools permanently with uv tool add:
uv tool add marimo
uv tool upgrade --all Project Management
uv init myproject
uv add fastapi pydantic
uv run python main.py No python -m venv, no pip install, no requirements.txt. UV creates the venv, resolves dependencies, and locks them automatically.
Self-Contained Scripts
UV also makes Python scripts fully portable with inline dependency metadata (PEP 723):
#!/usr/bin/env -S uv run --script
# /// script
# requires-python = ">=3.12"
# dependencies = ["httpx"]
# ///
import httpx
print(httpx.get("https://httpbin.org/ip").json()) Make it executable and it runs anywhere UV is installed. No venv, no setup. See runnable python scripts for more.
Why UV Over Traditional Tools
Speed: 10-100x faster than pip for dependency resolution. Reliability: Deterministic installs with automatic lock files. Simplicity: One tool for venvs, packages, scripts, and CLI tools.
It replaces pip, virtualenv, pipenv, poetry, and pyenv – combined.