Pythonモジュールの関係図を作る

Posted: , Modified:   Python Qiita

本稿は Qiita 投稿記事 のバックアップです.

はじめに

リファクタリングのために,モジュール間の関係図を作る. Pythonでモジュールの依存関係図を描きたいとかPython dependencies inside a package によると, snakefood が良さそうだったので使ってみた.

snakefood

pip でインストール可能.

$ pip install snakefood

いくつかのコマンドが提供されているが, sfood で解析し,stood-graphGraphviz 用の dot ファイルを書き出せる.

解析したいパッケージのルートが ROOT だとすると,

$ sfood ROOT | sfood-graph > graph.dot

graph.dot ができるので,後は適当にプロットする.

$ dot -Tjpg graph.dot -o graph.jpg -Gdpi=800

モジュールが多い場合解像度(-Gdpiオプションの値)は大きめに設定しないと潰れて読めなくなる. jpg 以外で出力する場合は,-Tpng などとすれば良い.

なお,sfood-i オプションをつけると,外部パッケージは省くことができる.

サンプル

参考までに,selenium で試した結果を掲載しておく.

その他

pyreverseの結果の見方とオプションの使い方 によるとpyreverse というツールでもいけるみたい.