Skip to content

新的Python包管理器 - uv

可以参考的一些资料

Python包管理不再头疼:uv工具快速上手 - wang_yb - 博客园

用 uv 管理 python 环境 (各种应用场景) - VCVC - 知乎

国内使用UV的代理设置指南 - 序语程言

安装

bash
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh

# With pip.
pip install uv

使用

初始化一个项目

bash
uv init xxx
cd xxx

# 如果你想在当前目录下,直接使用
uv init

初始化之后,项目的结构如下:

.
├── main.py
├── pyproject.toml
├── README.md
└── uv.lock

这个 pyproject.toml 和 js 里面管理依赖有点类似:

toml
[project]
name = "python-async"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = [
    "aiohttp>=3.11.18",
]

[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple/"

创建虚拟环境 venv,怕你找不到还告诉你怎么激活(人还怪好):

bash
uv venv

之后激活虚拟环境:

bash
source .venv/bin/activate

管理依赖

安装依赖:

bash
uv add <dependency>

删除依赖:

bash
uv remove <dependency>

安装一些 pip 也是可以的,可以用来加速 pip 的安装,可以参考官方的文档:Compatibility with pip | uv

bash
uv pip install pandas # 安装pandas包
uv pip freeze > requirements.txt # 导出依赖
uv pip install -r requirements.txt # 安装依赖

换源

源在国外,大概率拉不下来,需要换源,提供两种方法:

  1. 在命令行中切换
bash
uv add fastapi --index https://mirrors.aliyun.com/pypi/simple/
  1. 在项目的 pyproject.toml 中添加

上面这两种都只在单个项目中起作用,提供持久化的一种方法:

bash
echo 'export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple' >> ~/.bashrc
source ~/.bashrc  # 立即生效

总结

一些小项目或者用 Docker 跑的小脚本,可以使用 uv 作为包管理器了,因为速度比较快,用于科学计算的 PyTorch 或者 Pandas,可能还是得上 conda

最后更新于:

Released under the MIT License.