Pythonだけで動的なネットワーク図を作成できるのを知っていますか?
 Pyvisを使えば、JavaScriptのスキルがなくても動的コンテンツを作成できます。
本記事の内容
- Pyvisとは?
 - Pyvisのシステム要件
 - Pyvisのインストール
 - Pyvisの動作確認
 
それでは、上記に沿って解説していきます。
Pyvisとは?
Pyvisとは、ネットワーク図を作成するPythonライブラリです。
正確には、ネットワーク図を表示するhtmlファイルを作成します。
htmlファイルは、次のようなコンテンツになります。
 このコンテンツは、拡大縮小・移動が可能なネットワーク図です。
このhtmlファイルには、 次のような記述があります。
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/vis/4.16.1/vis-network.min.js"> </script>
この記述により、vis.jsを利用していることがわかります。
vis.js公式
 https://visjs.org/
vis.jsは、ネットワーク図を表示するJavaScriptライブラリです。
JavaScriptを利用しているから、動的なコンテンツが実現できます。
よって、Pyvisが直接動的なネットワーク図を作成しているわけではありません。
Pyvisは、動的コンテンツを実現するhtml(js読み込み、jsonの表示)を作成しているだけです。
Pyvisのイメージは、つかめたでしょうか?
スキル的にPythonだけ完結できるのが、Pyvisを使う利点になります。
私は、JavaScript歴はかなり長いです。
スキル的には、JavaScriptの利用には全く問題ありません。
でも、Pyvisは便利だと感じます。
 Pythonでjsonを出力して、それをajaxで読み込む手間がなくなりますからね。
その意味では、Pyvisは多くの方面で需要があるライブラリでしょう。
例えば、JupyterLab(Jupyter Notebook)上でネットワーク図を使ったプレゼンが可能になります。
JupyterLabについては、次の記事で説明しています。
以上、Pyvisの説明でした。
 次は、Pyvisのシステム要件を確認します。
Pyvisのシステム要件
現時点(2021年7月)でのPyvisの最新バージョンは、0.1.9となります。
この最新バージョンは、2021年3月3日にリリースされています。
GitHubなどの公式ページには、サポートOSの記載はありません。
 しかし、サポートOSに関しては以下を含むクロスプラットフォーム対応のはずです。
- Windows
 - macOS
 - Linux
 
ソースを見る限り、環境(OS)依存の記述はありません。
実際に、WindowsとLinux(Ubuntu)で検証しました。
Linuxで動けば、基本的にはmacOSも問題ないはずです。
また、サポート対象となるPythonのバージョンに関しても同様です。
特に記述がありません。
このような場合は、依存パッケージのサポート状況を確認しましょう。
 Pyvisが依存しているパッケージは以下です。
- networkx
 - jinja2
 - ipython
 - jsonpickle
 
上記パッケージのサポート状況を見ると、Python 3.6以降であれば問題なさそうです。
また、そこそこ大きなライブラリに依存していることがわかります。
networkxについては、次の記事で説明しています。
jinja2については、次の記事でまとめています。
バージョンに話を戻すと、ここではPython 3.6以降をおススメしておきます。
 これは、Pythonの公式開発サイクルに準じてもいます。
| バージョン | リリース日 | サポート期限 | 
| 3.6 | 2016年12月23日 | 2021年12月 | 
| 3.7 | 2018年6月27日 | 2023年6月 | 
| 3.8 | 2019年10月14日 | 2024年10月 | 
| 3.9 | 2020年10月5日 | 2025年10月 | 
上記は、Pythonの公式開発サイクルです。
このサイクルに準じていれば、サポート状況として十分でしょう。
なお、私は以下のバージョンのPythonで検証しています。
>python -V Python 3.9.5
以上、Pyvisのシステム要件の説明でした。
 次は、Pyvisをインストールしていきます。
Pyvisのインストール
まずは、現状のインストール済みパッケージを確認しておきます。
>pip list Package Version ---------- ------- pip 21.1.3 setuptools 57.0.0
次にするべきことは、pipとsetuptoolsの更新です。
 pipコマンドを使う場合、常に以下のコマンドを実行しておきましょう。
python -m pip install --upgrade pip setuptools
では、Pyvisのインストールです。
 Pyvisのインストールは、以下のコマンドとなります。
pip install pyvis
インストールは、しばらく時間がかかります。
 では、どんなパッケージがインストールされたのかを確認しましょう。
>pip list Package Version ----------------- ------- backcall 0.2.0 colorama 0.4.4 decorator 4.4.2 ipython 7.25.0 ipython-genutils 0.2.0 jedi 0.18.0 Jinja2 3.0.1 jsonpickle 2.0.0 MarkupSafe 2.0.1 matplotlib-inline 0.1.2 networkx 2.5.1 parso 0.8.2 pickleshare 0.7.5 pip 21.1.3 prompt-toolkit 3.0.19 Pygments 2.9.0 pyvis 0.1.9 setuptools 57.0.0 traitlets 5.0.5 wcwidth 0.2.5
かなりの数のパッケージが、インストールされました。
 これだけ多くのパッケージと依存関係があれば、導入が容易とは言えません。
インストールに失敗した場合や環境を汚したくない場合は、仮想環境を利用しましょう。
 仮想環境に関しては、次の記事で解説しています。
仮想環境を知らない人がいたら、伝えておきます。
仮想環境という言葉にビビる必要なんてありません。
Pythonの標準機能により、簡単に仮想環境を構築できます。
個人的には、Pyvisは仮想環境へのインストールをおススメします。
以上、Pyvisのインストールについて説明しました。
 最後に、Pyvisの動作確認を行います。
Pyvisの動作確認
公式のサンプルを利用しましょう。
from pyvis.network import Network
g = Network()
g.add_node(0)
g.add_node(1)
g.add_edge(0, 1)
g.show("basic.html")
上記コードを実行すると、同一フォルダ上に「basic.html」が保存されます。
同時に、ブラウザが起動することがあります。
ただし、これはブラウザが対応している場合です。
 表示されているのは、「basic.html」となります。

上記のネットワーク図が確認できたら、Pyvisの動作確認は成功です。
以上、Pyvisの動作確認についての説明でした。
  
  
  
  




