在 Python 项目中 requirement.txt 文件,用于记录所有依赖包和它的确切版本号。
1. 安装requirements.txt
pip install -r requriements.txt
2. freeze生成requirements.txt
pip freeze > requirements.txt
这种方式配合virtualenv 才好使,否则把整个环境中的包都列出来了。它搜索依赖库的范围是全局环境,因此会把项目之外的库加入进来,造成冗余(一般是在虚拟环境中使用,但还是可能包含无关的依赖库)。它只会记录以“pip install”方式安装的库,对依赖库之间的依赖关系不做区分,无法判断版本差异及循环依赖等情况。
3. pipreqs生成requirements.txt
# pip install pipreqs
# 在项目的根目录下使用
pipreqs ./ --encoding=utf8 --force
这个工具的好处是可以通过对项目目录的扫描,自动发现使用了那些类库,自动生成依赖清单。缺点是可能会有些偏差,需要检查并自己调整下。
如果是Windows系统,会报编码错误 (UnicodeDecodeError: "gbk" codec can't decode byte 0xa8 in position 24: illegal multibyte sequence)
使用时,指定编码格式 pipreqs ./ --encoding=utf8