Python生成requirements.txt的两种方法及pipreqs推荐
本文介绍Python项目中requirements.txt的作用及生成方法。对比了pip freeze(生成全量依赖,推荐配合虚拟环境使用)与pipreqs(仅扫描项目实际引用,更精准)两种工具。重点讲解pipreqs的安装与参数用法,并辨析setup.py与requirements.txt的共存关系,帮助开发者优化依赖管理流程。
一、什么是requirements.txt文件及作用
requirements.txt 文件记录了项目所需的所有依赖包及其具体版本号,相当于该项目的依赖清单。
其主要作用是复现项目运行环境或进行环境迁移。例如,从 GitHub 下载一个 Python 项目后,若需运行该项目且项目包含 requirements.txt 文件,可通过执行命令 pip install -r requirements.txt 来一键安装所有必需的依赖包。
二、怎么生成requirements.txt 文件
生成该文件主要有两种方式:使用 Python 内置的 pip freeze 命令,或使用第三方库 pipreqs。
1、pip freeze方法(不推荐)
该方法适用于基于虚拟环境开发的项目。因为虚拟环境是隔离的,使用此方法生成的依赖列表较为纯净。若未使用虚拟环境,直接运行该命令会生成当前 Python 环境中所有已安装的包,其中包含大量项目无关的依赖,导致后续安装时引入冗余包。
终端使用命令:
pip freeze > requirements.txt
2、pipreqs第三方库(推荐)
pipreqs 能够自动扫描当前项目目录下的代码,识别实际引用的组件及其版本,并生成 requirements.txt 文件。相比 pip freeze,它能有效隔离其他项目依赖,极大简化了项目迁移和部署时的包管理流程。
使用步骤:
1、先安装pipreqs库
pip install pipreqs
2、在当前目录使用生成
pipreqs ./ --encoding=utf8 --force
--encoding=utf8 :指定使用utf8编码
--force :强制执行,当生成目录下的requirements.txt已存在时进行覆盖
. /: 指定生成requirements.txt文件的目标目录
补充:setup.py 与 requirements.txt 区别
setup.py 文件用于管理模块,支持将项目打包并上传至 PyPI,或将项目作为模块安装到 Python 的系统模块加载目录中。
requirements.txt 文件仅用于列举项目所引用的、非项目本身的第三方依赖,除此之外无其他功能。
由此可见,两者并无冲突关系,且在许多场景下具有共存的必要性。
若你的项目需要被保存为系统模块,或需作为可安装的系统命令提供,则 setup.py 必不可少。
若你的项目是直接运行的脚本或服务,则 requirements.txt 也是必不可少的。
如果项目同时具备上述两种功能,则两个文件均需保留。
是否存在同时需要这两种功能的项目?
确实存在,且数量不少。例如 Flask 框架就支持这两种方式:
以系统命令方式启动:在 Flask 0.11.1 版本中引入了 Click 包,允许在 setup 之后以命令行方式运行项目。
直接运行:传统的 Flask 启动方式通常包括调用 app.run() 或执行 python manage.py runserver。
总结
到此这篇关于python生成requirements.txt文件的文章就介绍到这了,更多相关python生成requirements.txt文件内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









