最新Python包管理工具uv
pip 是 Python包管理工具。uv是一个拥有环境管理、依赖管理、Python版本管理、运行脚本、打包发布等多种功能的Python一体化工具链,集齐了venv、virtualenv、pip、poetry能力于一身。
uv对于包的解析安装速度比pip快数十倍,配置虚拟环境的速度也比virtualenv快数十倍。
uv 是一个 超快的 Python 包管理器,它集成了:
- 包安装(替代
pip) - 虚拟环境管理(替代
virtualenv) - 锁定文件(兼容
pip-tools和Poetry)
1、安装uv
1.1 通过pip安装
pip install uv
1.2 macOS和Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
1.3 Windows:
powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
uv工程默认会生成4个文件:
.python-version:记录当前工程的Python版本。
main.py:主脚本。
pyproject.toml:记录当前uv工程的依赖情况。
README.md:工程的说明文件。
2、配置环境
使用uv init命令来创建Python项目

然后在Python项目中添加依赖,使用 uv add命令实现,比如 uv add requests

移除依赖 比如 uv remove requests

uv remove: 移除依赖
uv sync: 同步依赖到虚拟环境中
uv lock: 生成锁文件
uv run: 在虚拟环境中运行脚本
uv tree: 查看依赖列表
uv build: 生成发布包
uv publish: 发布到PyPI
uv pip list: 查看安装的库
使用虚拟环境
# 创建一个新的虚拟环境 uv venv myproject
使用这个命令可以为项目初始化一个Python虚拟环境,并且可以指定Python解释器版本。
uv venv --python 3.10
可以通过以下命令直接创建工程并指定python解释器版本。
uv init myproject -p 3.10
激活虚拟环境
# Linux/macOS: source myproject/bin/activate # Windows: myproject\Scripts\activate
3、包管理
uv 能实现pip的所有功能,语法一致 ,而且比pip安装包的速度更快
比如说安装第三方库,使用 uv pip install命令实现
uv pip show: 显示已安装包的细节
uv pip freeze: 显示已安装包列表及其版本号
uv pip check: 检查当前环境是否有兼容的软件包
uv pip uninstall: 卸载包
uv pip tree: 查看环境依赖
# 安装单个包 uv pip install requests # 安装多个包 uv pip install requests numpy pandas # 安装指定版本的包 uv pip install "django>=4.0,<5.0" # 从 requirements.txt 安装 uv pip install -r requirements.txt
安装依赖
# 安装项目依赖(从 pyproject.toml) uv pip install -e . # 安装开发依赖 uv pip install -e ".[dev]" # 安装所有可选依赖 uv pip install -e ".[dev,docs,web]" # 生成锁定文件 uv pip freeze > requirements.lock # 同步依赖(确保环境与 requirements.txt 完全一致) uv pip sync requirements.txt
添加依赖
# 添加生产依赖 uv add requests uv add "django>=4.0,<5.0" uv add requests beautifulsoup4 pandas # 添加开发依赖 uv add --dev pytest black flake8 uv add --dev "pytest>=7.0" # 添加可选依赖组 uv add --group docs sphinx sphinx-rtd-theme uv add --group web fastapi uvicorn
4、管理Python版本
uv可以安装Python,以及对其版本进行管理。比如安装不同版本Python:
uv python install 3.10 3.11 3.12
uv python list: 查看安装的Python版本
uv python pin: 将当前项目固定为使用特定 Python 版本
uv python uninstall: 卸载某版本Python
5、执行Python脚本
执行脚本,使用 uv run命令, 如: uv run test.py
1. 明确指定版本(最高优先级)
uv run --python 3.11 script.py uv run --python python3.12 script.py uv run --python /usr/bin/python3.10 script.py
2. 项目配置文件
如果有 pyproject.toml:
[project] requires-python = ">=3.9"
或者 .python-version 文件:
3.11.5
3. 环境变量
export UV_PYTHON=3.11 uv run script.py
6、场景功能覆盖
uv 在高性能之外,构建了覆盖开发全周期的功能矩阵,实现从环境管理到项目部署的一体化支持:
-
Python版本管理:支持 Python 3.10/3.11/3.12 等多版本并行安装与快速切换,通过
uv python install命令 10 秒级完成运行环境部署,彻底解决项目间版本冲突问题。 -
工具管理:兼容 pipx 的工具安装逻辑,通过
uv add命令直接安装并运行 Python 应用程序,无缝融入开发工作流。 -
脚本支持:针对单文件脚本提供内联依赖管理,通过
uv add --script为脚本动态注入依赖,避免全局环境或项目污染,实现 “脚本即独立单元” 的轻量化开发。 -
全面的项目管理:生成
uv.lock文件固化依赖版本,结合uv sync命令实现跨环境依赖一致性,提升项目可移植性。 -
工作区支持:对于大型项目,uv支持Cargo风格的工作区。
-
全局缓存:uv节省磁盘空间,通过全局缓存实现依赖去重。
7、使用场景
想使用Python 3.12,但尚未安装。我们可以先运行以下命令让uv帮我们安装,然后再设置虚拟环境:
uv python install 3.12
准备好创建虚拟环境时,运行:
uv venv --python 3.12
需要 requirements.txt文件,可以运行:
uv pip compile pyproject.toml -o requirements.txt
可以随时通过 uv pip sync 从 requirements文件安装依赖。
8、高级玩法
import requests
res = requests.get('http://www.baidu.com')
print(res.text)
没有安装request,运行会报错

可以这样运行,因为这样无需全局安装依赖或在不需要的项目中安装,就能以隔离的方式运行这个脚本
uv add --script run.py requests
9、从其他工具迁移
从pip + venv迁移
# 有requirements.txt的项目 uv init uv add -r requirements.txt
从Poetry迁移
# Poetry项目直接兼容 uv sync # 自动识别pyproject.toml
从Pipenv迁移
# 导出现有依赖 pipenv requirements > requirements.txt uv init uv add -r requirements.txt rm Pipfile Pipfile.lock # 清理旧文件
10、遇到问题?秒速解决!
# 🔧 清理缓存 uv cache clean # 🔄 重建环境 rm -rf .venv && uv sync # 🔍 查看依赖树 uv tree # 🐛 详细日志调试 uv sync --verbose # ✅ 检查配置 uv --version # 依赖冲突解决 uv lock --resolution lowest-direct # 验证环境一致性 uv lock --check # 强制重新解析 uv lock --upgrade

浙公网安备 33010602011771号