创建项目
- 创建一个新的 Python 项目
1 2
| uv init hello-world cd hello-world
|
- 在已有的工作目录中初始化一个项目
1 2 3
| mkdir hello-world cd hello-world uv init
|
项目结构
一个完整的项目列表如下所示:
1 2 3 4 5 6 7 8 9 10
| . ├── .venv │ ├── bin │ ├── lib │ └── pyvenv.cfg ├── .python-version ├── README.md ├── main.py ├── pyproject.toml └── uv.lock
|
pyproject.toml
包含有关项目的元数据,如下所示,可以用该文件来指定依赖项目以及项目的详细信息:
1 2 3 4 5 6
| [project] name = "hello-world" version = "0.1.0" description = "Add your description here" readme = "README.md" dependencies = []
|
.python-version
包含项目的默认Python版本。告诉 uv
在创建项目虚拟环境时使用哪个Python版本。
.venv
包含项目的虚拟环境,这是一个与系统其他部分隔离的 Python 环境,uv
将在这里安装项目的依赖项。
uv.lock
是一个跨平台的锁文件,其中包含项目依赖项的精确信息。与用于指定项目总体需求的 pyproject.toml
不同,锁文件包含项目环境中已安装的精确解析版本。此文件应纳入版本控制,以便在不同机器上实现一致且可重复的安装。
注意:uv.lock
是一个人类可读的 TOML 文件,但由 uv 管理,不应手动编辑。
管理依赖项
添加依赖项
可以使用 uv add
命令向 pyproject.toml
文件添加依赖项。这也会更新锁文件和项目环境:
可以指定版本约束或替代来源:
1 2 3 4 5
| uv add 'requests==2.31.0'
uv add git+https://github.com/psf/requests
|
也可以使用带有 -r
标志的 uv add
从文件添加所有依赖项:
1 2
| uv add -r requirements.txt -c constraints.txt
|
删除依赖项
升级软件包
1
| uv lock --upgrade-package requests
|
运行命令
uv run
可用于在您的项目环境中运行任意脚本或命令:
也可以先使用 uv sync
命令手动更新环境,激活环境,再执行命令:
1 2 3 4
| uv sync source .venv/bin/activate flask run -p 3000 python example.py
|
参考资料
uv 官网指南:https://docs.astral.sh/uv/guides/projects/