Python项目中通常都会包含一个requirements.txt文件,一般存放在工程根目录下。该文件记录了项目中使用的第三方依赖包及其版本号信息,主要用于新环境中的项目部署。它通常长这样:
# requirements.txt
cx-Oracle == 7.0.0
paramiko == 2.4.2
Pypubsub == 4.0.0
requests == 2.18.4
SQLAlchemy == 1.2.12
wxPython == 4.0.3
把项目部署到新环境后,在文件目录下执行命令 pip install -r requirements.txt
,pip就会自动下载、安装文件中所有的依赖包了,使用起来十分方便。那么,我们自己的python项目该如何生成requirements.txt文件呢?
1. 小型项目建议手动生成
一般的小项目可能只会用到5、6个第三方的依赖包,完全可以自己手动填写,费不了多少事情。
2. 利用virtualenv与pip freeze命令自动生成
使用virtualenv在独立环境下开发的python项目,可以通过执行如下命令自动生成requirements.txt文件:
pip freeze > requirements.txt
pip freeze
命令会列出当前环境中安装的所有第三方依赖包及其版本号信息,所以仅当项目在独立的虚拟环境中时该方法才比较实用。非虚拟环境会列出本地安装的所有依赖包。另外第三方包所依赖的包也会被列出。
3. 利用第三方包pipreqs或者pigar自动生成
pipreqs与pigar均可直接通过pip install
命令直接安装使用。
- pipreqs,能够自动分析项目中引用的包,并生成requirements.txt文件。实际使用时发现存在偏差,还需要人工检查修改。。。
使用方法:在项目根目录下执行命令:
pipreqs ./
pipreqs ./ --encoding=utf-8 # windows环境下需要指定编码,不然会报编码错误
- pigar,功能同pipreqs,但更强一些,生成的requirements.txt文件中会显示包在项目中被引用的位置。使用时依然会存在些许偏差,但比pipreqs好用不少,推荐使用。
使用方法:在项目根目录下执行命令:
pigar -p requirements.txt -P ./ # -p 指定requirements.txt文件保存路径,-P 指定查找的工程路径