uv init可一键生成规范python项目骨架,支持基础初始化、空目录初始化、指定python版本、库/应用类型定制,自动生成.gitignore、pyproject.toml等文件,虚拟环境懒加载。

想用uv init快速搭起一个规范的Python项目骨架,不用手动建目录、写配置、装依赖、设虚拟环境,只要一条命令就能自动生成带版本锁定、Git忽略规则和可运行示例的完整结构。
基础初始化:一步生成标准项目
打开终端(PowerShell、CMD 或 Bash),进入你希望存放项目的父目录,执行:
uv init my_project
这条命令会立刻创建名为 my_project 的文件夹,并在其中生成:.gitignore、.python-version、pyproject.toml、main.py 和 README.md。注意:它不会自动创建 .venv 目录,首次运行 uv run 时才触发虚拟环境生成——这是uv的懒加载设计,避免无意义的磁盘占用。
cd my_project
在当前空目录初始化(不新建文件夹)
如果你已经建好空文件夹并进入了该目录,直接运行:
uv init
这会跳过创建外层目录步骤,只在当前路径下生成项目文件。适用于已有协作仓库或已规划好路径的场景。
【必须确保当前目录为空】,否则 uv 会报错退出,不覆盖任何现有文件。
指定 Python 版本初始化
方法一:用 --python 参数锁定解释器版本
uv init my_api --python 3.11
这会在 .python-version 中写入 3.11,并确保后续所有 uv run、uv venv 都默认使用该版本。如果本地未安装 Python 3.11,uv 会在首次需要时自动从官方源下载一个轻量、隔离的二进制解释器到缓存目录,无需管理员权限或系统级安装。
方法二:先写好 .python-version 再 init(适合离线或受控环境)
echo "3.10" > .python-version && uv init
这种写法绕过参数解析,对 CI/CD 流水线或脚本批量初始化更可控。
按项目类型初始化:库 vs 应用
第一步:初始化为可发布库(--lib)
uv init data-utils --lib
它不会生成 main.py,而是创建 src/data_utils/__init__.py 结构,并在 pyproject.toml 中预置 [build-system] 和符合 PEP 517 的打包配置,方便后续执行 uv build 打包上传 PyPI。
第二步:初始化为命令行应用(--app)
uv init todo-cli --app
这会在 pyproject.toml 的 [project.scripts] 下自动添加入口点声明,比如 todo = "todo_cli.main:cli",让你后续只需 uv run todo 就能调用主函数,无需手动配置 setup.py 或 entry_points。
注意:--lib 和 --app 互斥,不能同时使用,选错类型会导致结构不符合预期,需删掉重来。










