作者:meeka编辑部 · 编辑整理 · 来源发布于 2026/11/2 07:24:22
Simon Willison:遇到 Python 依赖报错,先删 uv.lock 文件
Simon Willison 在 11 月 1 日记录了切换到 Python 3.15 后遇到的一类 Python 依赖问题,他给出的经验规则很直接:有疑问就删掉 uv.lock 文件。
他解释,自己大多数项目是库(library),本身不包含 uv.lock 文件,因为库为使用它的其他项目锁定版本并不合适。但运行 uv run pytest 之类的命令往往会留下 uv.lock 文件,这些文件被列入 .gitignore,不会提交到仓库。
问题在于,这个 uv.lock 有时会锁定某个依赖的版本,而该版本还没有 Python 3.15 的 wheel。他给出的当天例子是:构建 watchfiles==1.1.1 失败,报错信息显示配置的 Python 解释器版本(3.15)高于 PyO3 最高支持的版本(3.14)。删除该文件并重新运行 uv run pytest,通常就能修复问题。
编辑部观察
这条经验针对的是本地开发中临时生成的锁文件,而非库项目应当提交的依赖声明。它成立的前提是 uv.lock 未被纳入版本控制,删除后可由 uv 重新解析生成;对于确实需要锁定版本的应用项目,直接删除锁文件会改变依赖解析结果,需要另行评估。原文未说明该做法对已提交锁文件的项目是否适用,也未给出除 watchfiles 之外的其他案例。

