使用 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 和 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 文件来锁定依赖项,确保下次安装时版本一致。

➡️

继续阅读