什么是python uv,如何在windows上安装uv,基础的用法有哪些?
什么是Python UV?
UV是由Astral公司(Rust工具Ruff的开发者)推出的高性能Python包管理工具,基于Rust编写,旨在替代传统的pip和pip-tools。其核心优势在于极快的速度(比pip快10-100倍)、轻量级设计(仅几十MB)以及现代化的依赖管理(支持pyproject.toml和uv.lock文件)。UV集成了虚拟环境管理、Python版本控制、依赖解析等功能,目标是成为类似Rust Cargo的全能工具,简化Python开发流程。
在Windows上安装UV的3种方法
-
通过PIP安装(推荐)
直接使用Python自带的pip安装,兼容性最佳:
pip install uv
安装后,uv会被添加到系统环境变量,即使切换虚拟环境也能使用。
-
PowerShell脚本安装
打开PowerShell,执行:
irm https://astral.sh/uv/install.ps1 | iex
-
使用Pipx(适合全局工具管理)
若已安装pipx:
pipx install uv
注意:若通过包管理器(如Chocolatey)安装,可能版本较旧,建议优先使用pip或官方脚本。
UV基础用法详解
-
创建虚拟环境
uv venv .venv # 默认创建.venv目录 uv venv -p 3.12 # 指定Python版本(需已安装)
激活环境:
.venv\Scripts\activate # Windows
-
安装依赖包
(图片来源网络,侵删)语法与pip一致,但速度更快:
uv pip install requests pandas # 安装最新版 uv pip install "numpy>=1.21" # 版本约束
-
初始化项目
(图片来源网络,侵删)uv init # 生成pyproject.toml和uv.lock
-
同步依赖
根据pyproject.toml和uv.lock自动安装依赖:
uv sync
-
依赖管理
- 添加/移除包:
uv add requests # 自动更新pyproject.toml uv remove pandas
- 导出依赖:
uv pip freeze > requirements.txt # 兼容传统格式
- 添加/移除包:
典型工作流示例
假设新建项目demo:
mkdir demo && cd demo uv init echo "requests" > pyproject.toml # 手动编辑依赖 uv sync # 自动创建.venv并安装 .venv\Scripts\activate uv pip list # 查看已安装包
为什么选择UV?
- 速度碾压传统工具:依赖解析和安装耗时仅为pip的1/10。
- 一体化管理:无需额外安装virtualenv或pyenv,直接管理Python版本和依赖。
- 跨平台支持:Windows/Linux/macOS命令一致,减少学习成本。
- 现代化标准:支持pyproject.toml,与Rust/Node.js生态对齐。
若你受够了pip的缓慢和conda的臃肿,UV是当前最优解。
Python虚拟环境创建方式多样,除了uv之外,以下是其他主流方法及对比:
1. 内置工具:venv模块
适用场景:Python 3.3+原生支持,无需安装额外工具
# 创建环境 python -m venv .venv # 激活(Windows) .venv\Scripts\activate
特点:
✅ 无需安装,开箱即用
❌ 依赖解析功能较弱,不支持跨Python版本管理
2. 第三方工具:virtualenv
适用场景:兼容Python 2/3,老项目维护
# 安装 pip install virtualenv # 创建环境 virtualenv myenv # 指定Python版本(需已安装) virtualenv -p /path/to/python myenv
特点:
✅ 支持旧版Python
✅ 灵活指定解释器路径
❌ 依赖pip安装,功能单一
3. 集成化工具:pipenv
适用场景:依赖管理+虚拟环境一体化
# 安装 pip install pipenv # 创建环境并安装包 pipenv install requests # 激活 pipenv shell
特点:
✅ 自动生成Pipfile和Pipfile.lock
✅ 依赖解析更严谨
❌ 性能较慢,社区活跃度下降
4. 科学计算生态:conda
适用场景:数据科学/跨语言依赖管理
# 创建环境 conda create -n myenv python=3.11 # 激活 conda activate myenv
特点:
✅ 支持非Python包(如C++库)
✅ 内置Python版本管理
❌ 安装包体积大(约500MB)
5. 现代工具链:poetry
适用场景:项目打包与依赖管理深度集成
# 初始化项目(自动创建环境) poetry new myproject poetry install # 激活 poetry shell
特点:
✅ 自动生成pyproject.toml
✅ 支持依赖分组(dev/test)
❌ 学习成本较高
横向对比
工具 启动速度 Python版本管理 依赖管理 适用场景 uv ⚡极快 ✅ ✅ 现代项目全能工具 venv 中等 ❌ ❌ 轻量级快速隔离 pipenv 较慢 ❌ ✅ 依赖锁定的传统项目 conda 慢 ✅ ✅ 数据科学/跨语言项目 poetry 中等 ❌ ✅ 需要打包的库项目 选择建议
- 追求极速:优先选uv
- 简单隔离:用内置venv
- 科学计算:选conda
- 项目发布:用poetry
- 旧版兼容:选virtualenv