pip 和 uv 基本使用对比

832 阅读7分钟

安装 Python

访问 Python 官网 下载并安装适合你操作系统的 Python 版本,安装时注意勾选 Add Python to PATH(Windows 用户),以便在命令行中直接使用 Python。

Python 包管理工具

pip 使用

pip 是 Python 默认的包管理工具,常用命令如下:

pip install package_name     # 安装包
pip uninstall package_name  # 卸载包
pip list                    # 查看已安装的包
pip freeze > requirements.txt  # 导出依赖
pip install -r requirements.txt  # 安装依赖

uv 使用(推荐)

uv 是一个用 Rust 编写的高性能 Python 包管理工具,比 pip 快 10-100 倍,且兼容现有工作流。

安装方法:

  1. 使用 pip 安装(推荐)
pip install uv
  1. 直接下载安装脚本
curl -LsSf https://astral.sh/uv/install.sh | sh

使用uv --help查看帮助说明如下:


uv --help

An extremely fast Python package manager.

Usage: uv [OPTIONS] <COMMAND>

Commands:
  run      Run a command or script
  init     Create a new project
  add      Add dependencies to the project
  remove   Remove dependencies from the project
  sync     Update the project's environment
  lock     Update the project's lockfile
  export   Export the project's lockfile to an alternate format
  tree     Display the project's dependency tree
  tool     Run and install commands provided by Python packages
  python   Manage Python versions and installations
  pip      Manage Python packages with a pip-compatible interface
  venv     Create a virtual environment
  build    Build Python packages into source distributions and wheels
  publish  Upload distributions to an index
  cache    Manage uv's cache
  self     Manage the uv executable
  version  Display uv's version
  help     Display documentation for a command

Cache options:
  -n, --no-cache               Avoid reading from or writing to the cache, instead
                               using a temporary directory for the duration of the
                               operation [env: UV_NO_CACHE=]
      --cache-dir <CACHE_DIR>  Path to the cache directory [env: UV_CACHE_DIR=]

Python options:
      --python-preference <PYTHON_PREFERENCE>
          Whether to prefer uv-managed or system Python installations [env:
          UV_PYTHON_PREFERENCE=] [possible values: only-managed, managed, system,
          only-system]
      --no-python-downloads
          Disable automatic downloads of Python. [env:
          "UV_PYTHON_DOWNLOADS=never"]

Global options:
  -q, --quiet
          Do not print any output
  -v, --verbose...
          Use verbose output
      --color <COLOR_CHOICE>
          Control the use of color in output [possible values: auto, always,
          never]
      --native-tls
          Whether to load TLS certificates from the platform's native certificate
          store [env: UV_NATIVE_TLS=]
      --offline
          Disable network access [env: UV_OFFLINE=]
      --allow-insecure-host <ALLOW_INSECURE_HOST>
          Allow insecure connections to a host [env: UV_INSECURE_HOST=]
      --no-progress
          Hide all progress outputs [env: UV_NO_PROGRESS=]
      --directory <DIRECTORY>
          Change to the given directory prior to running the command
      --project <PROJECT>
          Run the command within the given project directory
      --config-file <CONFIG_FILE>
          The path to a `uv.toml` file to use for configuration [env:
          UV_CONFIG_FILE=]
      --no-config
          Avoid discovering configuration files (`pyproject.toml`, `uv.toml`)
          [env: UV_NO_CONFIG=]
  -h, --help
          Display the concise help for this command
  -V, --version
          Display the uv version

Use `uv help` for more details.

以下是 uv 工具各个命令的中文解释,按功能分类整理:

核心命令

命令作用常用场景
uv run直接运行 Python 脚本或命令替代 python script.py,支持环境自动激活
uv init创建新 Python 项目初始化项目结构(类似 poetry init
uv add添加依赖到项目修改 pyproject.toml 并安装依赖(如 uv add requests
uv remove移除项目依赖从配置文件和环境中删除依赖
uv sync同步环境依赖根据配置文件更新虚拟环境(类似 pip install -r requirements.txt
uv lock生成锁文件(uv.lock锁定依赖版本以确保环境一致性(类似 pip freeze
uv export导出锁文件为其他格式生成 requirements.txt 供传统工具使用

依赖管理

命令作用特点
uv tree显示依赖树可视化查看依赖层级关系(类似 pipdeptree
uv pip兼容 pip 的包管理接口所有 pip 命令加速版(如 uv pip install 速度提升 10x)

环境管理

命令作用优势
uv venv创建虚拟环境python -m venv 快 10 倍(默认创建 .venv 目录)
uv python管理 Python 版本安装/切换不同 Python 版本(需开启 --python-downloads

开发者工具

命令作用示例
uv tool运行包提供的工具直接调用 black/flake8 等(如 uv tool run black .
uv build构建 Python 包生成 wheelsdist 分发文件
uv publish发布包到 PyPI类似 twine upload

系统管理

命令作用说明
uv cache管理缓存清理/查看缓存目录(默认在 ~/.cache/uv
uv self管理 uv 自身检查更新或卸载

辅助命令

命令作用
uv version显示当前 uv 版本
uv help查看详细帮助文档

常用选项

选项作用
--no-cache禁用缓存(临时目录替代)
--offline离线模式(仅使用本地缓存)
--python-preference优先使用系统或 uv 管理的 Python
--no-python-downloads禁止自动下载 Python

常用命令:

uv pip install package_name  # 安装包
uv pip uninstall package_name  # 卸载包
uv pip freeze                # 查看已安装包列表
uv venv .venv                # 创建虚拟环境

使用场景建议

  1. 新项目初始化
uv init && uv add fastapi && uv sync
  1. 快速安装依赖(利用镜像源):
UV_INDEX_URL=https://mirrors.aliyun.com/pypi/simple/ uv pip install numpy
  1. 环境迁移
uv lock && uv export -o requirements.txt

uv 通过 Rust 底层优化,在依赖解析和下载速度上显著优于传统工具,特别适合大型项目或 CI/CD 环境。

常用命令对照表

以下是 uvpip 常用命令的对比表格,帮助快速迁移工作流:

功能描述pip 命令uv 对应命令(或推荐用法)差异说明
安装包pip install <package>uv pip install <package>uv add <package>uv 速度更快(10-100x 加速)uv add 会更新 pyproject.toml
批量安装依赖pip install -r requirements.txtuv pip install -r requirements.txtuv 依赖解析更快
卸载包pip uninstall <package>uv pip uninstall <package>uv remove <package>uv 速度更快(10-100x 加速)uv remove 会更新 pyproject.toml
列出已安装包pip listuv pip list输出格式一致
导出依赖pip freeze > requirements.txtuv lock && uv export -o requirements.txtuv 通过锁文件导出更精确
创建虚拟环境python -m venv .venvuv venv .venv
uv venv .venv --python 3.11
uv 快 10 倍,默认目录 .venv。使用 --python指定创建虚拟环境的python版本
激活虚拟环境source .venv/bin/activate同左(激活方式不变)uv 不改变激活逻辑
运行脚本python script.pyuv run python script.pyuv 自动激活环境,无需手动操作
依赖树查看pipdeptree(需安装第三方包)uv tree原生支持依赖树

uv 独有功能

命令作用示例
uv sync同步虚拟环境与配置文件依赖uv sync
uv lock生成锁文件 uv.lockuv lock
uv python install管理多版本 Pythonuv python install 3.11
uv tool run直接运行包内工具(如 blackuv tool run black .
uv cache clean清理缓存uv cache clean

性能对比场景

场景pip 耗时uv 耗时优势说明
安装 NumPy + Pandas~15s~3s依赖解析和下载优化
创建虚拟环境~2s0.2s基于 Rust 的快速实现
同步大型依赖(50+包)~30s~5s并行下载和缓存复用

通过对比可以看出,uv 在性能和现代项目支持上优势显著,而 pip 更适合传统项目或兼容性要求高的场景

设置国内源

国内主流镜像源推荐

镜像源地址特点
清华大学pypi.tuna.tsinghua.edu.cn/simple同步频率高
阿里云mirrors.aliyun.com/pypi/simpleCDN加速
豆瓣源pypi.doubanio.com/simple支持HTTP协议
腾讯云mirrors.cloud.tencent.com/pypi企业级稳定性
中科大pypi.mirrors.ustc.edu.cn/simple稳定

pip 永久设置国内源

pip config set global.index-url https://mirrors.aliyun.com/pypi/simple/

验证配置:

pip config list  # 查看是否生效

uv 设置国内源

uv 支持通过环境变量或命令行参数指定镜像源:

  1. 永久设置环境变量(添加到 shell 配置文件如 ~/.bashrc~/.zshrc):
echo 'export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/' >> ~/.bashrc
source ~/.bashrc
  1. 临时指定镜像源
UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple/ uv pip install requests
  1. 单次安装时指定
uv pip install requests -i https://mirrors.aliyun.com/pypi/simple/

验证配置:

echo $UV_INDEX_URL          # 查看环境变量
uv pip install requests     # 观察下载源

创建虚拟环境

使用 pip 创建虚拟环境
python -m venv .venv         # 创建虚拟环境
source .venv/bin/activate    # 激活(Linux/macOS)
.venv\Scripts\activate       # 激活(Windows)
deactivate                   # 退出虚拟环境
使用 uv 创建虚拟环境
uv venv .venv                # 创建虚拟环境(自动使用配置的镜像源)
uv venv .venv --python 3.11  # 使用 --python指定创建虚拟环境的python版本
source .venv/bin/activate    # 激活(Linux/macOS)
.venv\Scripts\activate       # 激活(Windows)

安装 Python 包

使用 pip 安装 Python 包
pip install requests         # 安装最新版本
pip install requests==2.25.1 # 安装指定版本
使用 uv 安装 Python 包

在激活的虚拟环境中:

uv pip install requests      # 安装包(自动使用 UV_INDEX_URL 镜像源)
uv pip install -r requirements.txt  # 批量安装依赖

参考文档

docs.astral.sh/uv/