从 uv 迁移到 PDM
摘要
开发者分享将 Python 项目从 uv 迁移到 PDM 的经验,强调 PDM 纯 Python 代码库、刚发布的 2.26.8 版带来的“相对时间依赖冷却”功能,以及更强大的项目管理特性。
<p><a href="https://lobste.rs/s/uczgez/switching_from_uv_pdm">评论</a></p>
查看缓存全文
缓存时间: 2026/04/21 20:18
# PDM 真香!| stuartm.nz
来源:https://stuartm.nz/2026/04/pdm-rocks/
我已经把所有项目从 uv 迁移到了 [PDM](https://pdm-project.org/en/latest/),体验非常愉快。迁移过程几乎无痛,因为两者的命令行接口非常相似,举几个简单例子:
- `uv init` → `pdm init`
- `uv add django` → `pdm add django`
- `uv lock` → `pdm lock`
- `uv sync` → `pdm sync`
- `uv run manage.py runserver` → `pdm run manage.py runserver`
PDM 的一大亮点是**纯 Python 编写**。遇到问题时,直接读源码就能搞清楚来龙去脉,毫无黑盒感。
今天 PDM 刚发布 2.26.8([Release 页面](https://github.com/pdm-project/pdm/releases/tag/2.26.8)),我最关心的功能是:**依赖冷却时间支持相对写法**:
```bash
pdm lock --exclude-newer 7d
```
PDM 还有更多讨喜之处……
- **项目管理体验极佳**。
可以用 `pdm new my-project` 一键建新项目,也可以在已有目录里执行 `pdm init`。它会启动一个小向导,询问项目类型(库还是应用),一次性把 `pyproject.toml` 等配置得妥妥帖帖。比 `uv init` 更贴心。
- **一键刷新依赖版本**。
`pdm update` 会把 `pyproject.toml` 里所有依赖更新到最新兼容版本,专治“一年前钉死的老版本”。
- **可定制依赖写入策略**。
与 PEP 440 相关,我偏爱 `compatible` 策略。执行 `pdm add django` 后,`pyproject.toml` 里会自动写入:
```toml
"django~=6.0"
```
意味着只接受 6.0.x 的补丁更新,既安全又省心。
- **作者响应飞快**。
我在 GitHub 上提了两个文档小 issue,作者当天就修好了。
更多优点等你发现,官方[文档](https://pdm-project.org/en/latest/)排版清晰、阅读友好。
原以为迁出 uv 会掉层皮,结果 PDM 让过程顺滑得像换了个壳。同时还能为真正的开源 Python 项目添砖加瓦,何乐而不为?
相似文章
Uv 0.12.0
uv 0.12.0 是极速 Python 包和项目管理器的一个重大版本,该管理器用 Rust 编写,旨在替代 pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv 等工具。
uv 0.12.0
uv 0.12.0 对 `uv init` 引入了破坏性变更,默认采用 `src/` 为基础的项目结构,配置 uv_build 后端,并设置脚本别名。该更新鼓励使用现代 Python 项目结构。
@MaximeRivest: dpyr 有用户了! https://github.com/maximerivest/dpyr…
dpyr 是一个新的 Python 库,复制了 R 的 dplyr 数据操作函数,提供与 Polars 或 DuckDB 后端的方法链、IDE 自动补全,并且语义经过 dplyr 验证。
@MaximeRivest: DSPy 3.4 候选版本已发布,我们正从 litellm 迁移。我一直困扰于 dspy 导入速度慢以及……
DSPy 3.4 候选版本已宣布,正从 litellm 迁移以提升导入速度并减少依赖。社区成员如 Drew Breunig 对改进表示赞赏。
@lateinteraction: 天哪,我们真是太幸运了,能有@isaacbmiller1作为首席维护者!另外,哇,我花了比我愿意承认的还长的时间才…
DSPy 3.3.0 已发布,其特色是用于 GEPA 优化代码和提示词的 dspy.Flex,以及原生支持并行工具调用的 dspy.ReActV2,同时对首席维护者 Isaac Miller 表示赞赏。