tbi*_*icr 67 python pip requirements.txt
我有一个具有多个包依赖关系的项目,其中列出了主要要求requirements.txt.当我调用pip freeze它时,将当前安装的软件包打印为普通列表.我更愿意也得到他们的依赖关系,如下所示:
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
Jinja2==2.7
Werkzeug==0.8.3
Flask-Admin==1.0.6
Flask==0.9
Jinja2==2.7
Werkzeug==0.8.3
Run Code Online (Sandbox Code Playgroud)
目标是检测每个特定包的依赖关系:
Werkzeug==0.8.3
Flask==0.9
Flask-Admin==1.0.6
Run Code Online (Sandbox Code Playgroud)
并将这些插入我的当前requirements.txt.例如,对于此输入:
Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3
Run Code Online (Sandbox Code Playgroud)
我想得到:
Flask==0.9
Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3
Run Code Online (Sandbox Code Playgroud)
有没有办法显示已安装的pip包的依赖关系?
Ant*_*hon 105
你应该看看pipdeptree:
$ pip install pipdeptree
$ pipdeptree -fl
Warning!!! Cyclic dependencies found:
------------------------------------------------------------------------
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
- Pillow==2.5.1
- pip
- setuptools
Run Code Online (Sandbox Code Playgroud)
它不会生成requirements.txt您直接指示的文件.然而,源代码(255行python代码)应该相对容易修改以满足您的需要,或者您可以(如@MERose指示在pipdeptree 0.3 README中)使用:
pipdeptree --freeze --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt
Run Code Online (Sandbox Code Playgroud)
0.5版本pipdeptree还允许带有--json选项的JSON输出,更容易机器解析,代价是可读性较差.
ali*_*i_m 12
yolk 可以显示包的依赖关系,前提是它们
setuptools附带包含依赖信息的元数据
$ yolk -d Theano
Theano 0.6.0rc3
scipy>=0.7.2
numpy>=1.5.0
Run Code Online (Sandbox Code Playgroud)Cod*_*ker 10
您可以通过安装pipdeptree包来做到这一点。
在项目文件夹中打开命令提示符。如果您正在使用任何虚拟环境,请切换到该虚拟环境。
使用 pip安装pipdeptree包
pip install pipdeptree
pipdeptree -fl
Run Code Online (Sandbox Code Playgroud)
该包将列出您的项目的所有依赖项。
了解更多pipdeptree
我意识到这个问题已经过去很多年了,但它出现在我的搜索中,所以我想我应该分享一些知识。
该pip-tools软件包包含一个名为 的工具pip-compile,它似乎也解决了原始发布者的问题。
pip-compile接受一个输入文件,可以是 setup.py、setup.cfg、pyproject.toml 或requirements.in。输入文件是您手写的文件,包含“直接”依赖项。它可能不会指定确切的依赖版本,但可能会使用版本范围(也可能根本没有限制)。该工具输出一个新的 rquirements.txt 文件,其中添加了所有间接依赖项,并将依赖项固定到确切的版本。
如果您pip-compile在更新源文件后再次运行该工具,它将根据需要在输出文件中添加或删除依赖项。您还可以选择通过添加标志来升级特定依赖项。
因此,虽然pip-compile没有向您显示依赖关系树本身,但它可以帮助您收集依赖关系树的所有叶子(我认为这就是原始发布者最终想要做的事情)。
在这里阅读更多内容: https: //github.com/jazzband/pip-tools/
| 归档时间: |
|
| 查看次数: |
22063 次 |
| 最近记录: |