Python 的世界里,从 pip 到 venv,从 requirements.txt 到 poetry、pipenv,项目依赖管理和环境隔离的选择五花八门。但今天要介绍的,是一款集轻量、现代、PEP 582 支持于一体的新锐工具——PDM。
PDM 是什么?为什么它值得一试?
PDM,全称 Python Development Master,是一个现代化的 Python 包管理工具。它采用了 PEP 582 标准,可以不用虚拟环境,也能实现依赖隔离,和传统的 venv
或 virtualenv
说再见。
它的核心优势包括:
- 使用标准的 PEP 621 声明项目元数据(告别 setup.py)
- 完全支持 PEP 582,自动维护本地
.venv
- 更快的安装速度和简洁的依赖管理
- 内置脚本系统,自动化开发流程非常顺手
如何安装 PDM?
安装方式非常简单,推荐使用 pip 安装:
体验AI代码助手
代码解读
复制代码
pip install pdm
安装成功后可以用 pdm --version
检查是否生效。
创建和管理项目的基本流程
- 初始化项目:
bash
体验AI代码助手
代码解读
复制代码
pdm init
按照提示一步步选择cpython版本,输入项目名称、描述、作者、依赖等内容,PDM 会自动生成 pyproject.toml
。
- 安装依赖:
bash
体验AI代码助手
代码解读
复制代码
pdm add requests
与 pip install
命令不同,PDM 会把依赖和元数据写入 pyproject.toml
,更规范。此时在 pyproject.toml
文件的中会新增一条依赖,例如:
toml
体验AI代码助手
代码解读
复制代码
dependencies = ["requests>=2.32.3"]
- 运行项目:
bash
体验AI代码助手
代码解读
复制代码
pdm run
PDM 会自动从 .pdm-python
中读取依赖,无需激活虚拟环境!
- 管理开发依赖:
bash
体验AI代码助手
代码解读
复制代码
# 开发环境新增pytest依赖
pdm add --dev pytest
# 安装生产环境的依赖
pdm install --prod
开发依赖和生产依赖分开管理,干净利落。
支持脚本和插件,一键执行开发流程!
PDM 支持在 pyproject.toml
里定义脚本,比如:
ini
体验AI代码助手
代码解读
复制代码
[tool.pdm.scripts]
start = "python main.py"
test = "pytest tests/"
之后就可以直接运行:
arduino
体验AI代码助手
代码解读
复制代码
pdm run start
pdm run test
是不是有点像 npm 的 scripts
?非常适合团队协作或 CI 自动化!
适用于哪些人?
- 不想折腾虚拟环境的人
- 想用更现代工具管理 Python 项目的开发者
- 对
poetry
和pipenv
不满意的人群 - 渴望自动化脚本流的中高级用户
总结
PDM 是一个站在多个 PEP 标准之上的现代化工具,简洁、强大、好用。如果你还在为项目依赖混乱头疼,不妨试试 PDM,让你的开发体验从此升级!