使用 uv 管理 Python 依赖

💡 原文中文,约3100字,阅读约需8分钟。
📝

内容提要

我最近将 Django 项目从 pip 切换到 uv,发现 uv 更快且简化了依赖管理,支持多版本 Python 和虚拟环境,确保环境可复现,安装依赖和初始化项目也很方便,适合 Python 开发者。

🎯

关键要点

  • Django 项目从 pip 切换到 uv,发现 uv 更快且简化了依赖管理。

  • uv 是一个使用 Rust 开发的 Python 包和项目管理器,支持创建虚拟环境。

  • 在相同环境下,使用 uv 安装依赖比 pip 快很多。

  • uv 内置了 Python 多版本安装和虚拟环境管理,确保环境可复现。

  • 在 macOS 或 Linux 上可以通过 curl 命令安装 uv,Windows 上使用 PowerShell 命令。

  • 初始化项目后,uv 会生成 pyproject.toml 文件,包含项目基本信息和依赖项。

  • 使用 uv 可以轻松安装多个 Python 版本和创建虚拟环境。

  • 虚拟环境中的依赖包会保存在 .venv 文件夹中,类似 Node.js 的 node_modules。

  • uv 提供了简单的命令来安装依赖和管理项目,确保依赖版本一致。

  • 在 Docker 中使用 uv 时,可以指定国内镜像以加快下载速度。

  • Python 发布已有三十余年,pip 是官方的依赖管理工具,但存在一些不足。

  • uv 是一种新的依赖管理工具,适合开发和维护 Python 项目。

🔎

延伸解读

uv 的优势与局限

uv 作为新兴的依赖管理工具,提供了比 pip 更快的安装速度和更简化的管理方式,尤其适合需要频繁切换 Python 版本和虚拟环境的开发者。然而,uv 仍处于发展阶段,可能在社区支持和文档完善性上不如 pip 成熟,用户在选择时需考虑这些因素。

虚拟环境的重要性

使用虚拟环境可以有效隔离不同项目的依赖,避免版本冲突。uv 提供的 .venv 文件夹功能类似于 Node.js 的 node_modules,确保项目的可复现性。开发者在创建新项目时,应优先考虑使用虚拟环境,以提升项目的可维护性和稳定性。

Docker 中的 uv 使用注意事项

在 Docker 环境中使用 uv 时,建议使用国内镜像加速依赖下载,并严格按照 uv.lock 文件中的版本安装依赖,以确保环境一致性。开发者应根据项目需求选择合适的安装方式,避免在生产环境中出现依赖版本不一致的问题。

延伸问答

uv 和 pip 有什么区别?

uv 比 pip 更快,简化了依赖管理,并支持多版本 Python 和虚拟环境管理。

如何在 macOS 上安装 uv?

可以使用命令:curl -LsSf https://astral.sh/uv/install.sh | sh 来安装 uv。

uv 如何管理虚拟环境?

uv 可以通过命令 uv venv --python 3.12.0 创建虚拟环境,依赖会保存在 .venv 文件夹中。

如何将现有项目迁移到 uv?

可以在项目根目录执行 uv init 或 uv pip install -r requirements.txt 来迁移项目。

在 Docker 中使用 uv 有什么注意事项?

需要指定国内镜像以加快下载速度,并可以选择将依赖安装到虚拟环境或系统环境中。

uv 如何确保依赖版本一致?

uv 通过生成 uv.lock 文件来锁定依赖项,确保下次安装时版本一致。

🏷️

标签

➡️

继续阅读