J'ai un projet avec plusieurs dépendances de package, les principales exigences étant répertoriées dans requirements.txt
. Lorsque j'appelle pip freeze
, Il affiche 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 requirements.txt
Actuel. 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?
Vous devriez jeter un œil à 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 python) devrait être relativement facile à modifier selon vos besoins, ou bien vous pouvez (comme @MERose indiqué est dans le pipdeptree 0.3 README) hors utilisation:
pipdeptree --freeze --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt
La version 0.5 de pipdeptree
permet également la sortie JSON avec le --json
, qui est plus facilement analysable en machine, au détriment d'être moins lisible.
yolk
peut afficher les dépendances des packages, à condition qu'ils
setuptools
est venu 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