Repolode
pdm-project

pdm-project/pdm

基于 PEP 621、PEP 517 标准的现代 Python 包与依赖管理工具,支持虚拟环境与锁文件。

可替代:PoetryPipenv

Star
8,662
Fork
501
未关闭 Issue
48
最近提交
昨天

这是什么?

PDM 是一个 Python 包与依赖管理工具,从标准的 pyproject.toml 读取项目元数据,并生成锁文件以固定依赖的精确版本。它既能像 Pipenv 一样在项目目录或集中位置创建和管理虚拟环境,也能像 Poetry 一样构建 wheel 和源码包并上传到 PyPI。

PDM 内置 PEP 517 构建后端,且不绑定特定的构建后端,项目可以自由选择。功能可通过插件系统扩展,并支持自定义用户脚本。它还能使用 python-build-standalone 安装 Python 解释器,并提供可选的集中式安装缓存。

此外,PDM 提供实验性功能:启用 PEP 582 后可将包安装到项目本地目录而非虚拟环境,也可以将 uv 用作安装器。

核心功能

  • 01依赖解析并通过 pdm.lock 锁定版本
  • 02支持在项目内或集中位置管理虚拟环境
  • 03内置 PEP 517 构建后端,支持 PEP 621 项目元数据
  • 04提供插件系统和可自定义的用户脚本
  • 05可通过 python-build-standalone 安装 Python 解释器
  • 06可选的集中式安装缓存

适用场景

  • 为 Python 应用管理依赖和虚拟环境
  • 基于标准 pyproject.toml 构建并发布 Python 库到 PyPI
  • 从 Pipenv 或 Poetry 迁移到基于 PEP 621 的工作流

快速上手

  1. 1

    使用安装脚本安装 PDM(Linux/Mac)

    curl -sSL https://pdm-project.org/install.sh | bash
  2. 2

    创建新的 PDM 项目

    pdm new my-project
  3. 3

    为项目添加依赖

    pdm add requests flask

使用前须知

  • 需要 Python 3.10 或更高版本。
  • PEP 582 和 uv 集成被标注为实验性功能。
  • uv 与 PEP 582 不兼容。

标签

常见问题

pdm 是什么?
基于 PEP 621、PEP 517 标准的现代 Python 包与依赖管理工具,支持虚拟环境与锁文件。 PDM 是一个 Python 包与依赖管理工具,从标准的 pyproject.toml 读取项目元数据,并生成锁文件以固定依赖的精确版本。它既能像 Pipenv 一样在项目目录或集中位置创建和管理虚拟环境,也能像 Poetry 一样构建 wheel 和源码包并上传到 PyPI。
pdm 可以免费使用吗?用的什么许可证?
pdm 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
pdm 还在维护吗?
活跃维护中。pdm 最近一次提交是在 2026年10月19日。
pdm 适合用来做什么?
为 Python 应用管理依赖和虚拟环境 基于标准 pyproject.toml 构建并发布 Python 库到 PyPI 从 Pipenv 或 Poetry 迁移到基于 PEP 621 的工作流
pdm 怎么安装和运行?
使用安装脚本安装 PDM(Linux/Mac): curl -sSL https://pdm-project.org/install.sh | bash 创建新的 PDM 项目: pdm new my-project 为项目添加依赖: pdm add requests flask
在哪里获取 pdm?
源代码和安装说明在 GitHub 上:https://github.com/pdm-project/pdm

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目