Python环境管理-uv
2016-03-04 12:01:00
# computer
UV 号称是 超快、超强大的 Python 依赖管理工具,用 Rust 语言开发的,这使得它比传统工具快得多,能让你的 Python 开发体验更加流畅。
它可以用来:
- 管理
Python版本(类似PyEnv) - 创建和管理虚拟环境(类似
VirtualEnv和PyEnv) - 管理
Python依赖(类似Pip和Poetry)
安装
- 使用 Pip 安装:
1 | pip install uv |
- 使用 Homebrew 安装:
1 | brew install uv |
- 使用 curl :
1 | curl -fsSL https://astro.sh/uv/install.sh | sh |
- 使用 Cargo :
1 | cargo install uv --git https://github.com/astral-sh/uv |
验证 UV 是否安装成功:
1 | uv --version |
使用
常用命令
uv init—— 初始化一个新的Python项目uv add—— 添加依赖(类似pip install)uv remove—— 移除依赖uv sync—— 同步依赖(类似poetry install)uv run—— 运行Python文件或命令
创建项目
1 | uv init project0 |
该命令会在当前目录下创建一个名为 project0 的目录,并初始化一个 Python 项目。目录结构如下:
1 | project0/ |
管理依赖
安装依赖
1 | uv add fastapi sqlalchemy |
UV 会同时安装 FastAPI 和 SQLAlchemy,并自动更新 pyproject.toml.
移除依赖
1 | uv remove sqlalchemy |
卸载 SQLAlchemy ,还会自动从 pyproject.toml 中移除对应的依赖项。
同步依赖
有时候,我们的虚拟环境可能和 pyproject.toml 里的依赖不同步。这时,只需运行:
1 | uv sync |
UV 会自动检查并修复依赖,类似于 poetry install.
查看依赖树
1 | uv tree |
运行 Python 代码
1 | uv run main.py |
这个命令会:
- 自动创建虚拟环境(如果尚未创建)
- 安装缺失的依赖
- 运行脚本
管理 Python 版本
UV 内置了 Python 版本管理,并且更加智能。
当你运行 uv init project 时,UV 会:
- 自动检测系统上的 Python 版本
- 优先选择当前 Python 版本
- 如果没有合适的版本,会自动下载
查看 UV 识别到的 Python 版本:
1 | uv python list |
如果你想安装某个 Python 版本(比如 3.12.1),可以直接执行:
1 | uv python install 3.12.1 |
如果我们希望某个项目始终使用特定的 Python 版本(比如 3.12),可以执行:
1 | uv venv --python 3.12 |
UV 会自动创建 基于 Python 3.12 的虚拟环境,并将信息写入 .python-version 文件。