当前位置:首页>python>[python]第14期-使用uv进行Python项目管理

[python]第14期-使用uv进行Python项目管理

  • 2026-10-21 13:28:47
[python]第14期-使用uv进行Python项目管理

使用uv进行Python项目管理

什么是 uv?

uv 是一款用 Rust 编写的高速 Python 包管理器和解析器,由 Astral 团队开发(也是 Ruff 的创建者)。它集成了 pip、pip-tools、pipenv、poetry 和 pyenv 等工具的功能,旨在提供极致的速度和可靠性,成为现代 Python 开发的终极工具链。

安装 uv

在 Linux 和 macOS 上安装

使用 curl 安装:

curl -LsSf https://astral.sh/uv/install.sh | sh

安装后重启终端或运行:

source $HOME/.cargo/env

在 Windows 上安装

使用 PowerShell:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

使用 pip 安装(已安装 Python 的情况下)

pip install uv

验证安装

uv --version

基本使用方法

1. 创建虚拟环境

uv 可以快速创建虚拟环境:

# 在当前目录创建虚拟环境uv venv# 指定 Python 版本创建虚拟环境uv venv --python 3.11# 创建指定名称的虚拟环境uv venv myenv

2. 激活虚拟环境

不同系统的激活方式:

Linux/macOS:

source .venv/bin/activate

Windows:

.venv\Scripts\activate

使用 uv 直接运行(无需激活):

uv run python script.py

3. 安装包

# 安装单个包uv add requests# 安装特定版本uv add "flask==2.3.0"# 安装开发依赖uv add --dev pytest# 从 requirements.txt 安装uv pip install -r requirements.txt# 安装当前项目(可编辑模式)uv add -e .

4. 管理依赖

创建 pyproject.toml 文件:

uv init

添加依赖到项目:

# 添加生产依赖uv add pandas numpy# 添加开发依赖uv add --dev black mypy# 移除依赖uv remove requests

生成 requirements.txt:

uv pip compile pyproject.toml -o requirements.txt

5. 同步依赖

确保虚拟环境与依赖文件一致:

uv sync

高级功能

1. 快速运行脚本

无需激活环境直接运行:

uv run python myscript.pyuv run pytest tests/uv run black src/

2. 跨平台依赖解析

uv 使用全局依赖缓存,大大加速重复安装:

# 查看缓存位置uv cache dir# 清理缓存uv cache clean

3. 使用不同 Python 版本

# 查看可用 Python 版本uv python list# 安装特定 Python 版本uv python install 3.12# 使用特定版本创建环境uv venv --python 3.12

4. 锁定依赖版本

生成锁文件确保一致性:

uv lock

这会在 pyproject.toml 旁生成 uv.lock 文件。

5. 与现有项目集成

迁移现有项目到 uv:

# 从 requirements.txt 创建 pyproject.tomluv pip compile requirements.in -o pyproject.toml# 或从现有环境导出uv pip freeze > requirements.txt

项目工作流示例

创建新项目

# 创建项目目录mkdir myproject && cd myproject# 初始化项目uv init# 添加依赖uv add fastapiuv add --dev pytest# 创建虚拟环境uv venv# 激活环境并工作source .venv/bin/activate

协作项目设置

# 克隆项目git clone project-urlcd project# 安装所有依赖(包括开发依赖)uv sync --dev# 运行测试uv run pytest# 添加新依赖uv add new-dependencyuv lock  # 更新锁文件

性能优化技巧

  1. 1. 并行安装:uv 默认并行下载和安装包
  2. 2. 全局缓存:相同的包在不同项目间共享
  3. 3. 预编译二进制:优先使用二进制发行版
  4. 4. 智能缓存策略:避免重复下载和解压

与其它工具对比

  • • 相比 pip:uv 快 10-100 倍,有更好的依赖解析
  • • 相比 poetry:更快的性能,更简洁的界面
  • • 相比 pipenv:显著更快的锁定和安装速度
  • • 相比 pdm:更快的依赖解析和安装

常见问题解决

1. 代理设置

export UV_HTTP_TIMEOUT=30export UV_PROXY=http://proxy.example.com:8080

2. 空间清理

# 清理所有缓存uv cache clean --all# 只清理包缓存uv cache clean --packages

3. 依赖冲突解决

# 详细依赖树查看uv tree# 尝试不同的解析策略uv sync --resolution=highest

集成到 CI/CD 流程

在 GitHub Actions 中使用 uv:

jobs:  test:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: astral-sh/setup-uv@v1      - run: uv sync --dev      - run: uv run pytest

总结

uv 凭借其卓越的性能和现代化的设计,正在成为 Python 生态系统中的游戏规则改变者。它通过:

  1. 1. 极致的速度:Rust 编写,并行处理,全局缓存
  2. 2. 一体化体验:整合多个工具的功能
  3. 3. 用户友好:简洁直观的命令行界面
  4. 4. 生产就绪:可靠的依赖解析和锁定机制

无论你是个人开发者还是团队协作,uv 都能显著提升 Python 项目的工作效率。开始使用 uv,体验下一代 Python 包管理的速度和便利吧!

注意:uv 仍在积极开发中,建议定期更新以获得最新功能和改进:

uv self update

 s

编辑 | SKYPIEA

官网 | skypiea.top
商务合作 | 2312890532@qq.com

SKYPIEA,连接世界、连接未来的秘密宝藏之地,通往无限可能,只要努力追寻,我们的征途是世间万物、星辰大海。

↑更多内容请关注SKYPIEA微信公众号↑

点击“在看”,让更多人发现SKYPIEA↓

最新文章

随机文章