Skip to content
Latchkey

PDM vs Poetry: Which Python Dependency Tool for CI?

PDM is a standards-forward dependency manager with a lockfile; Poetry is the mature, widely-adopted default.

PDM manages dependencies and packaging using PEP 621 metadata, ships a lockfile, and historically explored PEP 582 (__pypackages__). Poetry is the established project-and-dependency manager with the largest ecosystem and docs.

PDMPoetry
Metadata standardPEP 621 nativePoetry-specific, PEP 621 supported newer
Lockfilepdm.lockpoetry.lock
CI installpdm installpoetry install --no-root
Plugin ecosystemGrowingLarge, mature
Adoption / familiaritySmallerVery widely used

In CI

Both give you deterministic installs from a committed lockfile, so the day-to-day CI behavior is similar: commit the lock, cache the venv or wheel cache keyed on it, and installs are reproducible. PDM is appealing if you value PEP-621-native metadata and a lighter, standards-forward tool. Poetry is the safer default for team familiarity, the breadth of existing guides, and plugin coverage.

Choosing for pipelines

Want standards-native metadata and a leaner tool: PDM. Want the most documented, widely-known option: Poetry. If you are also weighing raw install speed, evaluate uv alongside both.

The verdict

Want PEP-621-native config and a standards-forward manager: PDM. Want the most mature, familiar ecosystem: Poetry. Both lock reproducibly - pick on standards vs familiarity, and consider uv for speed.

Related guides

References

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