[DOCKER] Visualisez les dépendances des packages python avec graphviz

Ce que vous voulez faire

Supposons que vous souhaitiez jeter un coup d'œil rapide aux dépendances d'un package python. Ici, nous expliquerons comment visualiser avec graphviz. Je l'ai confirmé sur Ubuntu 15.10, mais peut-être que cela peut également être fait sous Windows.

Installation

Hypothèse: On suppose que Anaconda est installé.

L'installation de graphviz est la suivante. Installez graphviz lui-même avec conda et wrapper avec pip. J'avais également besoin d'une bibliothèque appelée libltdl7.

bash


conda install -y graphviz
pip install graphviz
apt-get install -y libltdl7

Utilisez pipdeptree pour les dépendances de package. L'installation est la suivante.

bash


pip install pipdeptree

Exécuter

Vous pouvez créer python-dep.png comme suit. Ils sont alignés pour que vous puissiez les installer par la gauche.

python


import graphviz
from subprocess import run, DEVNULL, PIPE
ss = run(['pipdeptree'], stdout=DEVNULL, stderr=PIPE, 
         universal_newlines=True).stderr.rstrip().split('\n')
ss = [s[2:].lower().split()[:3] for s in ss if s[0] in ' *']
g = graphviz.Digraph(format='png', filename='python-dep', engine='dot')            
g.edges([(s[2], s[0][:s[0].index('=')]) for s in ss])
g.attr('graph', rankdir='LR')
g.render()

image

Essayer avec Docker

La série ci-dessus de docker (Dockerfile blob / master / Dockerfile)) est préparé. Vous pouvez créer python-dep.png comme suit.

bash


docker run -it --rm -v $PWD:/tmp -w /tmp \
    tsutomu7/python-dep python /root/python-dep.py

référence Résumé de la façon de dessiner des graphiques en graphviz et en langage à points Gestion facile des packages Python avec les outils liés à pip J'ai essayé de représenter graphiquement les packages installés en Python ... Je l'ai trouvé après avoir écrit l'article.

c'est tout

Recommended Posts