Skip to content
Latchkey

uv vs Poetry: Python Project Management Compared

Both manage a project, resolve dependencies, and write a lockfile; uv is faster and newer, Poetry is the mature, widely documented standard.

uv and Poetry both go beyond raw installs: they model a project, lock the full dependency graph, and manage virtual environments. uv (Rust) optimizes for speed; Poetry has years of adoption, plugins, and ecosystem familiarity.

uvPoetry
LanguageRustPython
Lockfileuv.lockpoetry.lock
Resolve/install speedVery fastSlower, especially on big graphs
Packaging/publishuv build / uv publishpoetry build / poetry publish
Maturity & docsNewer, evolving fastMature, broad ecosystem

Where uv wins

On large dependency graphs uv resolves and installs far faster, which compounds across every CI run. A single tool covers installing, locking, running, and building. The pyproject-based workflow is familiar to Poetry users, easing migration.

Where Poetry wins

Poetry has years of production use, extensive documentation, a plugin ecosystem, and predictable behavior that many teams already standardize on. If your team, tooling, or CI templates assume Poetry, the switch may not be worth the churn. Poetry resolver behavior is well understood and battle-tested.

In CI

Commit the lockfile (uv.lock or poetry.lock) and cache by its hash. uv sync and poetry install --no-root both give deterministic installs. The main practical difference you will feel in pipelines is wall-clock install time.

The verdict

Choose uv for speed and a single fast toolchain, especially on large projects or busy pipelines; stick with Poetry when its maturity, ecosystem, and your existing conventions outweigh the speed gain. Both produce reproducible, lockfile-driven builds.

Related guides

References

Run this faster and cheaper on Latchkey managed runners - self-healing included. Start free → 30-day trial · No credit card