uv 0.12.0
uv 0.12.0
uv 0.12.0 对 `uv init` 命令生成的默认项目结构做出破坏性变更:新项目默认采用 `src/` 目录布局,将 `main.py` 置于 `src/` 下,而非项目根目录;同时配置 `uv_build` 后端以支持 `uv build` 构建 wheel 和 `.tar.gz` 分发文件,并设置 `uv-init` 作为脚本别名,通过 `uv run uv-init` 执行 `src/uv_init/__init__.py` 中的 `main()` 函数。
uv 0.12.0 这个版本的 uv 带来了一些有趣的破坏性变更,尤其是 uv init 命令生成的默认项目结构。uv init 是 uv 中用于创建新项目的快捷命令。之前的 uv 版本(0.11.x)在运行 uv init uv-init 时会产生这样的目录结构。而在 uv 0.12 中,你会得到以下内容。我有一个 GitHub 仓库会自动快照 uv init 的输出,你也可以查看完整的差异对比:None 类型注解,打印 "Hello from uv-init." src="https://static.simonwillison.net/static/2026/uv-diff.webp" /> uv init 现在默认生成 src/ 目录结构的包,而不是将 main.py 放在项目根目录。它还会配置 uv_build 后端,用于在运行 uv build 时构建 wheel 和 .tar.gz 分发文件。最后,它设置了 uv-init 作为脚本别名,当通过 uv run uv-init 运行时,会执行 src/uv_init/__init__.py 中的新 main() 函数。
到目前为止,我出于惯性一直避免在自己的项目中使用 src 布局。我想是时候切换了。不知道 uv 何时会被认为准备好发布 1.0 版本?
标签:packaging, python, uv