170 votes

Existe-t-il un moyen d'afficher les arbres de dépendance des paquets pip ?

J'ai un projet avec de multiples dépendances de paquets, les exigences principales étant listées dans requirements.txt . Quand j'appelle pip freeze il affiche les paquets actuellement installés sous forme de liste simple. Je préférerais obtenir également 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

L'objectif est de détecter les dépendances de chaque paquet spécifique :

Werkzeug==0.8.3
    Flask==0.9
    Flask-Admin==1.0.6

Et les insérer dans mon fichier actuel requirements.txt . Par exemple, pour cette entrée :

Flask==0.9
Flask-Admin==1.0.6
Werkzeug==0.8.3

J'aimerais avoir :

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 paquets pip installés ?

259voto

Anthon Points 4119

Vous devriez jeter un coup d'œ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 comme vous l'avez indiqué directement. Cependant, la source (255 lignes de code python) devrait être relativement facile à modifier selon vos besoins, ou bien vous pouvez (comme @MERose l'a indiqué dans le README de pipdeptree 0.3) l'utiliser :

pipdeptree --freeze  --warn silence | grep -P '^[\w0-9\-=.]+' > requirements.txt

La version 0.5 de pipdeptree permet également une sortie JSON avec l'option --json qui est plus facilement analysable par la machine, au prix d'une lecture moins aisée.

11voto

ali_m Points 7185

Attention : py2 seulement / abandonware

yolk peut afficher les dépendances des paquets, à condition que ceux-ci

  • ont été installés via setuptools
  • sont accompagnés de métadonnées qui comprennent des informations sur les dépendances.

    $ yolk -d Theano
    Theano 0.6.0rc3
      scipy>=0.7.2
      numpy>=1.5.0

6voto

Codemaker Points 639

Vous pouvez le faire en installant pipdeptree paquet.

Ouvrez une invite de commande dans le dossier de votre projet. Si vous utilisez un environnement virtuel, passez à cet environnement virtuel.

Instalar pipdeptree en utilisant pip

pip install pipdeptree
pipdeptree -fl

Ce paquet listera toutes les dépendances de votre projet.

Pour en savoir plus pipdeptree

enter image description here

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X