LY's Space

uv常用操作

字数统计: 540阅读时长: 2 min
2025/07/25
loading

创建项目

  1. 创建一个新的 Python 项目
1
2
uv init hello-world
cd hello-world
  1. 在已有的工作目录中初始化一个项目
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
uv add requests

可以指定版本约束或替代来源:

1
2
3
4
5
# 指定版本约束
uv add 'requests==2.31.0'

# 添加git依赖
uv add git+https://github.com/psf/requests

也可以使用带有 -r 标志的 uv add 从文件添加所有依赖项:

1
2
# 从requirements.txt添加所有依赖
uv add -r requirements.txt -c constraints.txt

删除依赖项

1
uv remove requests

升级软件包

1
uv lock --upgrade-package requests

运行命令

uv run 可用于在您的项目环境中运行任意脚本或命令:

1
uv run example.py

也可以先使用 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/

CATALOG
  1. 1. 创建项目
  2. 2. 项目结构
  3. 3. 管理依赖项
    1. 3.1. 添加依赖项
    2. 3.2. 删除依赖项
    3. 3.3. 升级软件包
  4. 4. 运行命令
  5. 5. 参考资料