pip freeze 是导出当前环境所有 pip 安装包及其精确版本号的标准命令,用于生成 requirements.txt 以复现环境;默认包含直接安装和传递依赖,可通过 pipreqs 或管道过滤实现精准控制。

在 Python 中,pip freeze 是导出当前虚拟环境(或全局环境)已安装依赖包的标准命令,它会列出所有通过 pip 安装的包及其精确版本号,常用于生成 requirements.txt 文件,便于环境复现。
基础用法:导出到 requirements.txt
在已激活的虚拟环境中(推荐),运行以下命令:
pip freeze > requirements.txt
这会把所有已安装包(包括直接安装和间接依赖)以 包名==版本号 的格式写入当前目录下的 requirements.txt 文件中。例如:
requests==2.31.0
numpy==1.24.3
click==8.1.7
只导出直接安装的包(排除传递依赖)
默认 pip freeze 会包含所有包(含子依赖),若只想导出你明确执行过 pip install xxx 的包,可结合 pip list --not-required 或使用第三方工具如 pipreqs。但更常用且轻量的方式是:
让 macOS 自动化像说话一样简单 —— 用代码控制你的 Mac,无需学习 AppleScript 系统要求 macOS 14+ (Sonoma) Python 3.9+ 需要开启:辅助功能 + 屏幕录制权限
- 先用
pip list --outdated检查哪些包不是最新版(非必需) - 用
pip freeze --exclude-editable排除以开发模式安装的包(如pip install -e .) - 如需精准控制,建议改用
pipreqs:
pip install pipreqs
pipreqs ./(自动分析项目 Python 文件,生成最小依赖列表)
导出时过滤或排除特定包
若想跳过某些包(如本地开发包、系统工具类),可用 shell 管道处理:
pip freeze | grep -v "some-package\|another-tool" > requirements.txt
Windows 用户可用 PowerShell:
pip freeze | Select-String -Pattern "some-package","another-tool" -NotMatch > requirements.txt
验证与后续使用
生成后建议检查内容是否合理,并在新环境中测试能否成功重建:
- 新建虚拟环境:
python -m venv new_env && source new_env/bin/activate(Linux/macOS)或new_env\Scripts\activate(Windows) - 安装依赖:
pip install -r requirements.txt - 如有报错,注意是否混用了 conda 和 pip、或存在平台限制(如
win32包无法在 Linux 安装)
Python免费学习笔记(深入):立即使用
在学习笔记中,你将探索 Python 的核心概念和高级技巧!










