从 uv 迁移到 PDM

Lobsters Hottest 工具

摘要

开发者分享将 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

Hacker News Top

uv 0.12.0 是极速 Python 包和项目管理器的一个重大版本,该管理器用 Rust 编写,旨在替代 pip, pip-tools, pipx, poetry, pyenv, twine, virtualenv 等工具。

uv 0.12.0

Simon Willison's Blog

uv 0.12.0 对 `uv init` 引入了破坏性变更,默认采用 `src/` 为基础的项目结构,配置 uv_build 后端,并设置脚本别名。该更新鼓励使用现代 Python 项目结构。