「GraphvizをPythonから利用したい」
このことを実現するためには、PyGraphvizが必要となります。
この記事では、PyGraphvizのインストールを解説していきます。
本記事の内容
- PyGraphvizとは?
- PyGraphvizのシステム要件
- PyGraphvizのインストール
- PyGraphvizの動作確認
それでは、上記に沿って解説していきます。
PyGraphvizとは?
PyGraphvizは、GraphvizのPython用Wrapperです。
別の表現をすると、C言語で開発されたGraphvizをPythonから利用するために必要なライブラリと言えます。
機能としては、Graphvizでできることはある程度できると考えてもよいでしょう。
具体的には、次の機能です。
- グラフの作成
- グラフの編集
- グラフの読み込み
- グラフの書き込み
- グラフの描画
また、PyGraphvizにはもう一つ大きな特徴があります。
それは、NetworkXと同じプログラミング・インターフェースを提供します。
つまり、NetworkXと同じようなコーディングでプログラミングができるということです。
NetworkXに関しては、次の記事で解説しています。
このことから、NetworkXでの利用が前提とも言えます。
実際、ネットワーク図を作成するにはNetworkXを利用しますからね。
次に、PyGraphvizのシステム要件を確認しましょう。
PyGraphvizのシステム要件
PyGraphvizの最新バージョンは、1.7となります。
この最新バージョンは、2021年1月2日にリリースされています。
サポートOSに関しては、以下を含むクロスプラットフォーム対応です。
- Windows
- macOS
- Linux
そもそも、Graphvizがクロスプラットフォーム対応ですからね。
そのため、サポートOSに関しては特に気にすることはありません。
ただ、それ以外のシステム要件はいろいろと注意が必要です。
ポイントとしては、以下となります。
- Pythonバージョン
- Graphviz
- Microsoft C++ Build Tools
下記でそれぞれを説明します。
Pythonバージョン
PyGraphvizの最新バージョンでは、サポート対象は以下。
- Python 3.7
- Python 3.8
- Python 3.9
結構、狭いです。
なお、動作確認するのは以下のバージョンとなります。
>python -V Python 3.9.1
Graphviz
Graphvizがないと何も始まりません。
PyGraphvizは、GraphvizのPython用Wrapperですからね。
そのGraphvizについては、次の記事で説明しています。
インストールの際には、参考にしてください。
なお、Windowsベースで話を進めています。
LinuxやmacOSの場合は、Windowsよりも容易にインストールや設定が可能です。
このことは、今回のPyGraphvizだけに限ったことではありません。
Microsoft C++ Build Tools
Microsoft C++ Build Toolsは、マイクロソフト製のC、C++、C++/CLI用統合開発環境 (IDE) のことです。
C/C++製のプログラムを動かすには必須とも言えます。
このMicrosoft C++ Build Toolsについては、次の記事で詳しくまとめています。
インストールの方法についても解説しています。
PyGraphvizのインストール
最初に、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.0.1 setuptools 53.1.0
次にするべきことは、pip自体の更新です。
pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip
では、PyGraphvizのインストールです。
PyGraphvizのインストールは、以下のコマンドとなります。
pip install --global-option=build_ext --global-option="-IC:\soft\Graphviz\include" --global-option="-LC:\soft\Graphviz\lib" pygraphviz
少し面食らうかもしれません。
いろいろとオプションが付いています。
このオプションは、Graphvizのインストール先を指定しているだけです。
つまり、Graphvizの居場所をPyGraphvizに教えているということになります。
私は、「C:\soft\Graphviz」にGraphvizをインストールしています。
そのため、以下のオプションになります。
- –global-option=”-IC:\soft\Graphviz\include”
- –global-option=”-LC:\soft\Graphviz\lib”
この部分は、各自の環境に合わせて変更してください。
インストールは、それほど時間がかからずに終了します。
では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ---------- ------- pip 21.0.1 pygraphviz 1.7 setuptools 53.1.0
最新版のPyGraphvizがインストールされています。
特に依存するライブラリはないようです。
最後に、PyGraphvizの動作確認を行いましょう。
PyGraphvizの動作確認
動作確認用のサンプルコードです。
import pygraphviz as pgv A = pgv.AGraph() # add some edges A.add_edge(1, 2) A.add_edge(2, 3) A.add_edge(1, 3) A.add_edge(3, 4) A.add_edge(3, 5) A.add_edge(3, 6) A.add_edge(4, 6) # make a subgraph with rank='same' B = A.add_subgraph([4, 5, 6], name="s1", rank="same") B.graph_attr["rank"] = "same" A.draw("test.png", prog="neato")
上記を実行すると、次のネットワーク図(test.png)が作成されます。
この画像が作成できれば、PyGraphvizが動いていることの確認はOKです。
以上、PyGraphvizの動作確認は終了とします。
今後、NetworkXと連携させてPyGraphvizでグラフを作成してみます。
その際は、記事にしてまとめてみたいと思います。