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
文件。