Visualisieren Sie Python-Paketabhängigkeiten mit graphviz

Was Sie tun möchten

Angenommen, Sie möchten einen kurzen Blick auf die Abhängigkeiten eines Python-Pakets werfen. Hier erklären wir, wie man mit graphviz visualisiert. Ich habe es unter Ubuntu 15.10 bestätigt, aber vielleicht kann es auch unter Windows gemacht werden.

Installation

Annahme: Es wird davon ausgegangen, dass Anaconda installiert ist.

Die Installation von graphviz ist wie folgt. Installieren Sie graphviz selbst mit conda und den Wrapper mit pip. Ich brauchte auch eine Bibliothek namens libltdl7.

bash


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

Verwenden Sie pipdeptree für Paketabhängigkeiten. Die Installation ist wie folgt.

bash


pip install pipdeptree

Ausführen

Sie können python-dep.png wie folgt erstellen. Sie sind so ausgerichtet, dass Sie sie von links installieren können.

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

Versuchen Sie es mit Docker

Die obige Serie von Docker (Dockerfile blob / master / Dockerfile)) ist vorbereitet. Sie können python-dep.png wie folgt erstellen.

bash


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

Referenz Zusammenfassung zum Zeichnen von Grafiken in Graphviz- und Punktsprachen Einfache Python-Paketverwaltung mit Pip-bezogenen Tools Ich habe versucht, die in Python installierten Pakete grafisch darzustellen ... Ich habe es gefunden, nachdem ich den Artikel geschrieben habe.

das ist alles

Recommended Posts