用 uv 生成 pip 兼容的 requirements.txt 文件,需在激活 uv 虚拟环境后执行 uv pip freeze > requirements.txt,或在无激活权限时用 uv pip freeze --python 3.12 > requirements.txt 显式指定版本,确保导出当前环境精确包列表。

用 uv 生成符合 pip 兼容格式的 requirements.txt 文件,需绕过 uv 自身的 lock 文件机制,直接提取当前环境已安装包的精确版本列表。
确认 uv 已正确管理当前 Python 环境
运行 uv python list 查看可用 Python 版本;若未显示当前项目所用版本(如 3.12.3),需先执行 uv python install 3.12.3 安装对应解释器。
确保项目根目录下存在 pyproject.toml 或已通过 uv venv 创建了虚拟环境并已激活。
方法一:从当前激活的 uv 虚拟环境中导出(推荐)
第一步:激活 uv 创建的虚拟环境 → 运行 source .venv/bin/activate(macOS/Linux)或 .venv\Scripts\activate.bat(Windows)。
第二步:执行 uv pip freeze > requirements.txt。
这会调用 uv 内置的 pip 兼容层,读取当前环境 site-packages 中所有已安装包及其 exact 版本号(含哈希值的 wheel 包也会被降级为 pkg==1.2.3 格式),输出到标准文本文件。注意:【必须在激活状态下运行,否则导出的是系统 Python 的包列表】。
方法二:用 uv sync + pip freeze 组合(适用于无激活权限场景)
方法一失效时(如 CI 环境禁止 shell 激活),可改用临时同步方式:
运行 uv sync --python 3.12 --no-dev --no-install 仅解析依赖但不安装;
再执行 uv pip freeze --python 3.12 > requirements.txt,显式指定 Python 版本避免误读全局环境。
该方式跳过虚拟环境激活步骤,但要求 pyproject.toml 中已正确定义依赖项,且 uv sync 成功完成解析。
验证导出结果是否可用
新建空目录 → 运行 uv venv .testenv && source .testenv/bin/activate → 执行 pip install -r requirements.txt。
若安装过程无报错、所有包版本与原环境一致,则导出成功。若提示 ERROR: Could not find a version that satisfies...,说明某包在 PyPI 上已 yanked 或版本被移除,需手动调整该行版本号为可用版本。
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!











