我有一个具有多个包依赖关系的项目,主要需求列在requirements.txt中。当我调用pip freeze时,它将当前安装的软件包打印为普通列表。我更愿意得到他们的依赖关系,比如:
烧瓶==0.9
金甲2==2.7
Werkzeug==0.8.3
金甲2==2.7
Werkzeug==0.8.3
烧瓶管理==1.0.6
烧瓶==0.9
金甲2==2.7
Werkzeug==0.8.3
目标是检测每个特定包的依赖关系:
Werkzeug==0.8.3
烧瓶==0.9
烧瓶管理==1.0.6
并将它们插入我当前的requirements.txt。例如,对于此输入:
烧瓶==0.9
烧瓶管理==1.0.6
Werkzeug==0.8.3
我想得到:
烧瓶==0.9
金甲2==2.7
烧瓶管理==1.0.6
Werkzeug==0.8.3
是否有任何方式显示已安装pip包的依赖关系
您应该看看pipdeptree:
$pip安装pipdeptree
$Pippeptree-fl
警告找到循环依赖项:
------------------------------------------------------------------------
xlwt==0.7.5
ruamel.ext.rtf==0.1.1
xlrd==0.9.3
openpyxl==2.0.4
-jdcal==1.0
pymongo==2.7.1
reportlab==3.1.8
-枕头==2.5.1
-皮普
-设置工具
它不会像您直接指出的那样生成requirements.txt文件。但是,源代码(255行python代码)应该相对容易修改以满足您的需要,或者您也可以(正如pipdeptree 0.3自述文件中所示的@MERose)使用以下代码:
pipdeptree--freeze--warn silence | grep-P'^[\w0-9\-=.]+'>;requirements.txt
pipdeptree的0.5版本还允许使用--JSON选项进行JSON输出,该选项更易于机器解析,但代价是可读性较差