У меня есть проект с несколькими зависимостями пакетов, основные требования перечислены в 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
Цель состоит в том, чтобы обнаружить зависимости каждого конкретного пакета:
Werkzeug==0.8.3
Flask==0.9
Flask-Admin==1.0.6
И вставить их в мой ток requirements.txt
. Например, для этого входа:
Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3
Я бы хотел получить:
Flask==0.9
Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3
Есть ли способ показать зависимости установленных пакетов pip?
python
pip
requirements.txt
tbicr
источник
источник
Ответы:
Вам следует взглянуть на
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
Он не создает
requirements.txt
файл, как вы указали напрямую. Однако исходный код (255 строк кода Python) должен быть относительно легко изменить в соответствии с вашими потребностями, или, в качестве альтернативы, вы можете (как указано в @MERose в файле pipdeptree 0.3 README) использовать:pipdeptree --freeze --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt
Версия 0.5
pipdeptree
также позволяет выводить JSON с--json
опцией, которая легче обрабатывается машиной, но менее читаема.источник
pipdeptree | grep -P '^\w+'
печатает файл requirements.txt.bokeh
:( У этого пакета есть особая организация требований, поэтому pip не показывает их, аПредупреждение: только py2 / Abandonware
yolk
может отображать зависимости для пакетов при условии, что ониsetuptools
поставляется с метаданными, которые включают информацию о зависимостях
$ yolk -d Theano Theano 0.6.0rc3 scipy>=0.7.2 numpy>=1.5.0
источник
distutils
, которые не поддерживают метаданные пакетов)