Uv's killer feature is making ad-hoc environments easy
Uv’s core features and value prop
- Seen as the first “all‑in‑one” Python tool that feels like a major step beyond pip + venv + pyenv + pipx/Poetry.
- Key selling points: very fast dependency resolution and installation, automatic venv creation, and integrated Python version management.
- Many users like that it can be the default recommendation for newcomers, replacing the usual “it depends: pip/poetry/conda/pyenv…” story.
Ad‑hoc environments & PEP 723 / script metadata
- “Killer feature” in the thread: easy ad‑hoc environments and one‑shot scripts.
uv runanduvxlet you run tools or scripts with dependencies without pre‑creating a venv or mutating global state.- Inline dependencies via PEP 723 comments (
/// script … dependencies = [ … ]) +#!uv runshebangs are heavily praised for sharing single‑file tools and reproducible bug repros. - Similar support exists in other tools (e.g., pipx), but uv’s UX is perceived as more cohesive.
Comparison with pip, venv, Poetry, conda, etc.
- Some claim pip + venv is “enough” and lockfiles can be emulated via
pip freezeand constraints; others argue that’s brittle, non‑portable, and confusing. - Uv provides first‑class lockfiles and
uv add/remove/syncto keeppyproject.tomland the environment aligned, composer‑style. - Several Poetry users consider switching, citing uv’s speed and simplicity; others are happy with Poetry’s workflow and see little gain.
- Conda users are divided: some say conda is obsolete and slow; others insist it remains essential for binary‑heavy, especially Windows‑centric, workflows. Uv currently doesn’t integrate with conda.
Interpreter and environment management
- Uv can download and manage multiple Python versions (via python‑build‑standalone), which many appreciate as a pyenv replacement.
- Some criticize downloading non‑PSF binaries or prefer OS package managers and manual installs; others value the convenience more than theoretical purity.
- Debate over whether one tool should manage Python versions, envs, and deps together; proponents say integration reduces foot‑guns, skeptics prefer small, composable tools.
Performance and implementation
- Rust implementation is widely credited (rightly or wrongly) for uv’s speed versus pip and pip‑tools.
- A few argue similar performance could be achieved in Python with better algorithms and caching; others don’t care as long as it’s fast and reliable.
Concerns, limits, and ecosystem politics
- Some worry about uv’s VC backing and potential ecosystem capture, though the dual MIT/Apache license is seen as a safety valve (forkability).
- Missing features: centralized venv storage, multiple executables per “tool” install, conda integration.
- Broader Python packaging debates surface: semver violations, stdlib API changes, confusion over what “package manager” vs “installer” vs “build system” should do, and comparisons (often unfavorable) to npm, cargo, pnpm, and Ruby’s bundler.