pip freeze
是 Python 包管理工具 pip
提供的一个核心命令,用于导出当前环境中已安装的第三方库及其精确版本信息,输出内容通常被保存到 requirements.txt
文件中,方便在其他环境中复现相同的依赖配置。
一、核心功能:锁定依赖版本
当你在 Python 环境(全局环境或虚拟环境)中安装了多个库(如 requests
、numpy
等),pip freeze
会遍历当前环境的 site-packages
目录,列出所有通过 pip
安装的库,并显示其精确版本号(格式为 库名==版本号
)。
例如,执行命令后可能输出:
requests==2.31.0
numpy==1.24.3
pandas==2.0.3
二、常见用法
1. 导出依赖到文件(最常用)
将当前环境的依赖列表保存到 requirements.txt
,方便后续迁移或共享:
pip freeze > requirements.txt
- 执行后,当前目录会生成
requirements.txt
文件,内容为所有库及其版本。
2. 在新环境中导入依赖
拿到 requirements.txt
后,在另一个环境(如其他电脑、新虚拟环境)中执行以下命令,可自动安装与原环境完全相同版本的库:
pip install -r requirements.txt
- 这是团队协作、项目部署时保证环境一致性的关键操作。
3. 查看当前环境依赖
直接执行 pip freeze
可在终端临时查看当前环境的所有库:
pip freeze
三、注意事项
-
只包含第三方库:
pip freeze
不会列出 Python 标准库(如os
、sys
),仅包含通过pip
安装的第三方库。 -
虚拟环境下的精准性:
若在venv
等虚拟环境中执行,只会导出该虚拟环境内的库,不包含全局环境的依赖,这也是推荐使用虚拟环境的原因之一。 -
可能包含冗余依赖:
当你安装某个库时,它的依赖库(间接依赖)也会被pip freeze
列出(例如安装pandas
会自动安装numpy
,numpy
也会出现在列表中)。如果需要「精简依赖」(只保留直接安装的库),可使用pip-tools
等工具。 -
与
pip list
的区别:pip list
:仅显示库名和版本,格式较简单(如requests 2.31.0
),适合快速查看。pip freeze
:输出格式为库名==版本号
,专为写入requirements.txt
设计,可直接被pip install -r
识别。
四、扩展:导出特定库
如果只想导出某个或某几个库,可结合 grep
(Mac/Linux)或 findstr
(Windows)筛选:
# Mac/Linux:只导出包含 "requests" 的库
pip freeze | grep requests
# Windows:只导出包含 "numpy" 的库
pip freeze | findstr numpy
总结
pip freeze
是 Python 项目依赖管理的核心工具,通过与 requirements.txt
配合,实现了「一次导出,多处复用」的环境一致性保障,是开发、测试、部署流程中不可或缺的命令。