Python 是一种脚本语言 ,借助 Python 虚拟机环境(CPython) ,我们可以轻松执行 Python 脚本,实现设备运维、Web 服务、自动化任务等多种功能。在实际开发中,为了更好地管理项目依赖和运行环境,Python 提供了多种包管理工具 ,其中最常用的有:
pipuvconda
它们各有优势,适用于不同场景。
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 没有内建的虚拟环境功能,但可以配合 venv 或 virtualenv 使用,实现环境隔离。
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