200字
UV--python包管理工具(对比pip、conda)
2025-06-21
2025-12-25

Python 是一种脚本语言 ,借助 Python 虚拟机环境(CPython) ,我们可以轻松执行 Python 脚本,实现设备运维、Web 服务、自动化任务等多种功能。在实际开发中,为了更好地管理项目依赖和运行环境,Python 提供了多种包管理工具 ,其中最常用的有:

  • pip
  • uv
  • conda

它们各有优势,适用于不同场景。

1. conda:数据科学领域的首选

特点:

  • 跨平台、跨语言支持
  • 集成虚拟环境管理
  • 适合深度学习、图像识别等复杂依赖的场景

使用场景:

在构建一个图像检测模型时,开发者通常需要安装 OpenCV、PyTorch 等库,这些库可能还依赖特定版本的 CUDA 或其他底层库。使用 conda 可以快速创建隔离的运行环境,并自动处理复杂的依赖关系。

conda create -n image_detection python=3.9
conda activate image_detection
conda install pytorch torchvision torchaudio cudatoolkit=11.8 -c pytorch

每次只需激活该环境即可运行对应项目,避免与其他项目的依赖冲突。


2. pip:Python 默认的包管理器

特点:

  • 官方推荐的标准包管理工具
  • 从 PyPI 安装第三方库
  • 简单易用,适合大多数 Python 开发场景

使用场景:

对于 Web 后端开发或自动化脚本项目,开发者通常会使用 pip 安装如 Flask、Django、Requests 等常用库。

pip install flask requests

虽然 pip 没有内建的虚拟环境功能,但可以配合 venvvirtualenv 使用,实现环境隔离。


3. uv:新一代高性能 Python 包管理器

特点:

  • 可视为是 pip 的升级版 / 替代品
  • 速度快、兼容性好
  • 支持现代 Python 标准(如 pyproject.toml
  • 由 Rust 编写,性能更优

使用场景:

当项目依赖较多且安装速度成为瓶颈时,uv 能显著提升效率,尤其适合 CI/CD 环境或大型项目初始化。

uv pip install numpy pandas
uv venv
source .venv/bin/activate

三者优势对

工具 是否支持虚拟环境 是否支持依赖锁定 是否适合多语言 推荐使用场景
conda 数据科学、AI、图像识别
pip
(需搭配 venv)

(通过 lock)
Web 服务、通用脚本
uv 高效安装、现代项目管理

uv 常用方法示例

正常创建项目:

uv init
uv init --name myproject --python 3.10
uv add fastapi

以下是一些常用的 uv 命令:

创建虚拟环境

uv venv

激活虚拟环境(Linux/macOS)

source .venv/bin/activate

安装单个包

uv pip install flask

批量安装依赖(支持 requirements.txt)

uv pip install -r requirements.txt

升级已安装包

uv pip install --upgrade requests
uv pip list

导出当前依赖

uv pip freeze > requirements.txt

UV--python包管理工具(对比pip、conda)
Author
Administrator
Published at
2025-06-21
License
CC BY-NC-SA 4.0

Comment