J'ai un projet avec plusieurs dépendances de packages, les principales exigences étant répertoriées dans requirements.txt
. Quand je l'appelle, pip freeze
il imprime les packages actuellement installés sous forme de liste simple. Je préférerais également obtenir leurs relations de dépendance, quelque chose comme ceci:
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
Le but est de détecter les dépendances de chaque package spécifique:
Werkzeug==0.8.3
Flask==0.9
Flask-Admin==1.0.6
Et insérez-les dans mon courant requirements.txt
. Par exemple, pour cette entrée:
Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3
Je voudrais obtenir:
Flask==0.9
Jinja2==2.7
Flask-Admin==1.0.6
Werkzeug==0.8.3
Existe-t-il un moyen d'afficher les dépendances des packages pip installés?
python
pip
requirements.txt
tbicr
la source
la source
Réponses:
Vous devriez jeter un oeil à
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
Il ne génère pas de
requirements.txt
fichier comme vous l'avez indiqué directement. Cependant, la source (255 lignes de code python) devrait être relativement facile à modifier selon vos besoins, ou vous pouvez également (comme @MERose indiqué est dans le pipdeptree 0.3 README) utiliser:pipdeptree --freeze --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt
La version 0.5 de
pipdeptree
permet également la sortie JSON avec l'--json
option, qui est plus facilement analysée par la machine, au détriment d'être moins lisible.la source
pipdeptree | grep -P '^\w+'
imprime un requirements.txt.bokeh
:( Ce package a une organisation spécifique des exigences, donc pip ne les montre pas, mais conda le fait.Attention: py2 uniquement / abandonware
yolk
peut afficher les dépendances pour les packages, à condition qu'ellessetuptools
livré avec des métadonnées qui incluent des informations de dépendance
$ yolk -d Theano Theano 0.6.0rc3 scipy>=0.7.2 numpy>=1.5.0
la source
distutils
, qui ne prennent pas en charge les métadonnées de package)