Python 包管理工具UV命令速记

官方文档地址:https://docs.astral.sh/uv/

安装UV

1
2
3
4
5
6
7
8
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

# With pip.
pip install uv
  • pyproject.toml:定义项目的主要依赖,包括项目名称、版本、描述、支持的 Python 版本等信息
  • uv.lock:记录项目的所有依赖,包括依赖的依赖,且跨平台,确保在不同环境下安装的一致性。这个文件由 uv 自动管理,不要手动编辑

安装python

  • 安装最新版python
1
uv python install
  • 安装特定版本
1
uv python install 3.12

创建虚拟环境

1
uv venv

可以指定python版本

1
uv venv --python 3.11

添加依赖

  1. add
1
2
3
4
5
uv add requests
# ✅ 安装包到环境
# ✅ 添加到 pyproject.toml
# ✅ 更新 uv.lock
# ✅ 其他人 uv sync 时会安装这个包
  1. 兼容pip
1
2
3
4
5
uv pip install requests
# ✅ 安装包到环境
# ❌ 不修改 pyproject.toml
# ❌ 不更新 uv.lock
# ❌ 其他人 uv sync 时不会安装这个包

不推荐第二种

删除依赖

1
uv remove requests # 删除项目依赖

同理不推荐

1
uv pip uninstall requests

运行项目

1
2
3
4
5
uv run main.py
# uv run 会自动:
# - 检查是否有虚拟环境,没有就创建
# - 根据 pyproject.toml/uv.lock 安装依赖
# - 在正确环境中运行脚本

项目迁移

本地项目(待迁移)

  • 如果确保依赖都是使用add安装的,更新uv.lock
1
2
3
uv lock -U
或者
uv lock -upgrate
  • 如果不确定uv.lock中依赖是全的,根据整理出requirements.txt
1
uv run pipreqs .

迁移项目

与上面同步

  • 根据uv.lock同步依赖
1
uv sync
  • 根据requirements.txt同步
1
uv add -r requirements.txt