pdm
A modern Python package and dependency manager supporting the latest PEP standards
Decision gist · record as of 2026-08-14
Yes, if you want a modern, standards-compliant package manager with flexibility in build backends and active maintenance. The low install friction, recent activity (release 3 days ago), and lack of known vulnerabilities make it a solid choice. Clarify the license terms first if you operate under strict licensing constraints, and verify that the 24 runtime dependencies align with your environment requirements.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires Python 3.10 or higher; the standalone binary is also available as an alternative to pip installation.
- Installation friction is low; the package is distributed as a wheel and maintained actively with a release within the last few days.
- It requires Python 3.10 or higher and pulls in 24 runtime dependencies including virtualenv, httpx, and resolvelib for core functionality.
License · maintenance · safety
(unclear) — License treatment is unclear—no SPDX identifier or raw license string is recorded in the metadata, though the description excerpt mentions MIT licensing. Verify the actual license terms before adopting in restricted environments.
last release 2026-08-11 (3 days) · last repo commit 2026-08-13 · 8,672 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 12,682,384 downloads/mo, #1,313 on PyPI
Alternatives
Verify before relying
# Install PDM (via pip or standalone binary)
pip install pdm
# Create a new project
pdm new my-project
# Add dependencies
pdm add requests flask- Exact license identifier and terms (description says MIT but metadata shows unclear treatment)
- Whether the 24 runtime dependencies are all required or some are optional/conditional
- Performance characteristics of the dependency resolver on large projects
What it is and what it does
PDM is a next-generation Python package manager designed to work with modern Python standards, particularly PEP 621 (project metadata) and PEP 517 (build backends). It combines environment management (similar to Pipenv), dependency locking, and packaging capabilities in a single tool, reading configuration from a standardized pyproject.toml file and maintaining a lockfile for reproducible installs.
Unlike Poetry or Hatch, PDM does not lock you into a specific build backend—you can choose any backend you prefer. It includes a fast dependency resolver optimized for large binary distributions, a plugin system for extending functionality, and optional features like centralized installation caching (similar to pnpm) and Python version management via astral-sh's python-build-standalone.
Use it for
- Manage dependencies and virtual environments for a Python library or application using a single pyproject.toml file
- Build and package Python projects with flexibility to choose your own PEP 517 build backend
- Lock dependencies for reproducible installs across team members or CI/CD pipelines
- Develop projects that need both environment isolation and centralized package caching to save disk space
- Extend PDM with custom plugins to integrate project-specific workflows or tooling
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you want a modern, standards-compliant package manager with flexibility in build backends and active maintenance.
The low install friction, recent activity (release 3 days ago), and lack of known vulnerabilities make it a solid choice. Clarify the license terms first if you operate under strict licensing constraints, and verify that the 24 runtime dependencies align with your environment requirements.
Install
pdm on PyPI
Before you install
Installation friction is low; the package is distributed as a wheel and maintained actively with a release within the last few days. It requires Python 3.10 or higher and pulls in 24 runtime dependencies including virtualenv, httpx, and resolvelib for core functionality.
Requires Python 3.10 or higher; the standalone binary is also available as an alternative to pip installation.
License in practice
License treatment is unclear—no SPDX identifier or raw license string is recorded in the metadata, though the description excerpt mentions MIT licensing. Verify the actual license terms before adopting in restricted environments.
Quickstart
# Install PDM (via pip or standalone binary)
pip install pdm
# Create a new project
pdm new my-project
# Add dependencies
pdm add requests flask
Verify before relying
- Exact license identifier and terms (description says MIT but metadata shows unclear treatment)
- Whether the 24 runtime dependencies are all required or some are optional/conditional
- Performance characteristics of the dependency resolver on large projects
Package facts
| License | Not declared unclear |
| Python support | Supports the current Python release >=3.10 |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 24 packagesargcompleteblinkerpackagingplatformdirsrichvirtualenvpyproject-hooksunearthdep-logicfindpythontomlkitshellinghampython-dotenvresolvelibinstallertruststoretomlihishelpbs-installerhttpxfilelockhttpcorecertifiid |
| Maintenance | Actively maintained 3 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 12,682,384 / month, #1,313 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Programming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Software Development :: Build Tools |
Evidence: pdm-2.28.1-py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “python package manager”
- pdmPDM is a modern Python package and dependency manager that handles…
- contextlib2contextlib2 backports the Python standard library's contextlib module…
- azure-mgmt-trafficmanagerProvides a Python client library to manage Azure Traffic Manager…
Give your agent the search over MCP, or paste the wish link into any chat.
More Build Tools packages
Provides reusable utilities for Python packaging interoperability, including version handling, specifiers, markers, requirements, tags, and metadata parsing according to standards like PEP 440 and PEP 425.
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
pip is the standard installer for Python packages, enabling you to download and install packages from the Python Package Index and other indexes into your Python environment.
Hatchling is a standards-compliant Python build backend that handles packaging, metadata, and distribution of Python projects when configured in a project's pyproject.toml file.
Generates Python gRPC service stubs and message classes from Protocol Buffer definitions, enabling developers to build gRPC clients and servers.
pre-commit is a framework for installing and running git hooks written in any language before commits are made, automating code quality and validation checks across multi-language projects.
Install it if your team needs consistent, automated validation at commit time.
See also juliapkg · pdm-backend · pdm-build-locked · dependency-groups · pdm-pep517 · cyclonedx-bom · pyproject-toml · cyclonedx-py · deptry