uv——极速、统一的Python包和项目管理器

uv 是一个基于 Rust 的高速、统一的 Python 包和项目管理器,旨在取代 pippip-toolsvirtualenvpyenv 等多个工具的功能。

uv 简化操作指南

I. 基础命令

任务 命令 说明
自升级 uv uv self update 如果是通过独立安装程序安装的,使用此命令更新 uv。
检查版本 uv --version 验证安装是否成功。

II. 项目初始化与依赖管理

uv 的核心工作流程围绕 pyproject.toml 文件(用于声明抽象依赖)和 uv.lock 文件(用于锁定精确版本,确保环境可重现)展开。

命令 用途 示例
初始化项目 创建新的 uv 项目结构 (pyproject.toml, .gitignore, .venv 虚拟环境,以及 .python-version 文件)。 uv init my_app
添加依赖 安装包并自动更新 pyproject.tomluv.lock uv add requests
添加开发依赖 将依赖添加到 [dependency-groups].dev 部分。 uv add --dev pytest
requirements.txt 添加 导入现有的依赖文件到 pyproject.toml uv add -r requirements.txt
锁定依赖 根据 pyproject.toml 解析并生成/更新 uv.lock 文件 uv lock
同步环境 根据 uv.lock 文件的精确版本 安装/卸载包,确保环境完全可重现。 uv sync
移除依赖 卸载包,并自动移除所有不再需要的传递性依赖 uv remove pandas
升级指定包 升级指定的包到最新兼容版本,并更新锁定文件。 uv lock --upgrade-package flask

III. 环境和 Python 版本管理

uv 集成了虚拟环境 (virtualenv) 和 Python 版本管理 (pyenv) 的功能。

命令 用途 示例
创建虚拟环境 在当前目录创建 .venv 虚拟环境。 uv venv
指定版本创建环境 创建环境并指定 Python 解释器版本 (如果本地没有,uv 会下载安装)。 uv venv --python 3.11
安装 Python 版本 安装特定 Python 解释器。 uv python install 3.12
固定项目版本 创建 .python-version 文件,将项目使用的 Python 版本固定下来。 uv python pin 3.11

IV. 运行脚本和工具

uv 提供隔离的环境来运行脚本和命令行工具,类似于 pipx 的功能。

命令 用途 示例
运行项目命令/脚本 在当前项目的虚拟环境 (.venv) 中运行任意命令或脚本。 uv run pytest tests/
运行独立脚本 运行带有内联依赖元数据(PEP 723)的 Python 脚本。 uv run script.py
临时运行 CLI 工具 uv tool run 的别名,在一次性、短暂的缓存环境中安装并运行工具。 uvx black main.py
全局安装工具 将工具安装到隔离的专用环境中。 uv tool install ruff

V. Pip 兼容模式 (uv pip)

uv 提供了 uv pip 接口,作为传统 pippip-tools 命令的高速替代品,但不推荐用于项目管理 (因为它不会自动更新 pyproject.tomluv.lock)。

任务 uv 兼容命令 传统命令
安装依赖文件 uv pip install -r requirements.txt pip install -r requirements.txt
编译锁定文件 uv pip compile requirements.in pip-compile requirements.in
同步锁定文件 uv pip sync requirements.txt pip-sync requirements.txt
列出已安装包 uv pip list / uv pip freeze pip list / pip freeze
相关推荐
k***92161 分钟前
list 迭代器:C++ 容器封装的 “行为统一” 艺术
java·开发语言·数据结构·c++·算法·list
karshey4 分钟前
【前端】sort:js按照固定顺序排序
开发语言·前端·javascript
MyBFuture5 分钟前
索引器实战:对象数组访问技巧及命名空间以及项目文件规范
开发语言·前端·c#·visual studio
无心水6 分钟前
【Stable Diffusion 3.5 FP8】1、Stable Diffusion 3.5 FP8 入门指南:为什么它能颠覆文生图效率?
人工智能·python·深度学习·机器学习·stable diffusion·ai镜像开发·ai镜像
38242782710 分钟前
python:单例模式
开发语言·python·单例模式
摸鱼仙人~11 分钟前
一文详解text2vec库
开发语言·python
jghhh0116 分钟前
基于C#的串口电子秤测试程序
开发语言·c#
natide17 分钟前
词汇/表达差异-6-n-gram分布距离
人工智能·python·算法
Yolo566Q18 分钟前
环境多介质逸度模型实践技术与典型案例【代码】应用
python
饕餮争锋19 分钟前
pip install 报错This environment is externally managed
开发语言·python·pip