【Python】一键查询依赖生成文件 requirements.txt

434 阅读2分钟

前言

我们在自己开发 Python 项目过程中(没有使用虚拟环境),最后做完项目再整理 requirements.txt 都是很麻烦的事。或者是从网上克隆的别人的项目,但是却没有 requirements.txt ,需要自己手动单独安装依赖,都是很痛苦的一件事。

下面我将要介绍一种 python 工具 pipreqs,实现速查询项目依赖并生成 requirements.txt,从而可以快速搭建项目依赖,完成项目快速迭代

官网:bndr/pipreqs: pipreqs

安装使用

# 安装
pip install pipreqs
# 使用(Linux)
pipreqs ./
# 使用(Windows)
pipreqs ./ --encoding=utf-8 
# 成功生成文件 ./requirements.txt
# 无版本模式
pipreqs --mode no-pin --force ./ 

补充

pip freeze

# 生成依赖文件
pip freeze > requirements.txt
# 一键安装依赖
pip install -r requirements.txt

pip freeze 只会保存使用 pip install 安装在环境中的软件包。

pip freeze 会保存环境中的所有软件包,包括当前项目中未使用的软件包(如果没有使用虚拟环境)。

conda

conda 安装 requirement.txt 依赖

可以使用如下命令使用 conda 安装 requirement.txt 依赖

conda install --yes --file requirements.txt

但是如果里面有包是不可用的,会抛出“无包错误”,可以使用如下命令

while read requirement; do conda install --yes $requirement; done < requirements.txt

如果想要在 conda 命令无效时使用 pip 命令来代替,那么使用如下命令

while read requirement; do conda install --yes $requirement || pip install $requirement; done < requirements.txt

注意:上面两段代码都是 linux shell 语法,windows 需要替换为其他语法

conda 导出虚拟环境并重新导入

如果是使用 conda 创建的虚拟环境,也可以使用 freeze.yml 文件导出虚拟环境

conda env export > freeze.yml

创建刚才导出的虚拟环境

conda env create -f freeze.yml

参考文章

zhuanlan.zhihu.com/p/385402838

blog.51cto.com/huifeng/519…

blog.csdn.net/Mao_Jonah/a…

stackoverflow.com/questions/3…