Macでpygraphvizのインストールにハマった話
はじめに
Pythonでグラフを描画するライブラリ「pygraphviz」をインストールしようとしたら、思いのほか苦戦しました。Graphvizの依存関係や環境設定の問題で何度もエラーが発生し、解決するまでかなり時間がかかりました。この記事では、同じような状況にハマった方のために、私が試した手順と解決方法を簡単にまとめます。
問題の発端
PlantUMLをVSCodeで使うために「pygraphviz」というライブラリをついでに入れておきたかったので、以下のコマンドを実行しました。
pip install pygraphviz
しかし、実行するたびにエラーが発生しました。その一例がこちらです。
error: command '/usr/bin/clang' failed with exit code 1
調べてみると、Graphvizというツールがインストールされていない、またはそのパスが正しく設定されていないことが原因だと分かりました。
解決のために試したこと
HomebrewでGraphvizをインストール
まず、Graphviz自体をインストールする必要がありました。以下のコマンドでHomebrewを使ってインストールしました。
brew install graphviz
その後、Graphvizが正しくインストールされたか確認しました。
dot -V
出力例:
dot - graphviz version 12.2.0
pygraphvizのインストール
Graphvizをインストールした後、pygraphviz のインストールを試しましたが、以下のようなエラーが出続けました。
fatal error: 'graphviz/cgraph.h' file not found
これは、pygraphviz がGraphvizのヘッダーファイル(cgraph.h)を見つけられていないことを意味していました。
解決の鍵:Condaの利用
pipでは依存関係の問題が解決できなかったため、Pythonの環境管理ツール「Conda」を使うことにしました。以下の手順でセットアップを行いました。
- Condaをインストール
Miniforgeという軽量なCondaをインストールしました。
brew install --cask miniforge
- 専用の環境を作成
Python環境を新しく作成して、pygraphviz をインストールしました。
conda create -n pygraphviz-env python=3.10
conda activate pygraphviz-env
conda install -c conda-forge pygraphviz
- インストールの確認
Conda環境内で以下を実行し、pygraphviz が正しくインストールされていることを確認しました。
python -c "import pygraphviz as pgv; print(pgv.__version__)"
無事、バージョンが表示されました!
1.14
結果
Condaを利用したことで、pygraphviz を問題なくインストールできました。その後、VSCodeでPlantUMLを動かす設定もスムーズに進みました。
同じ問題にハマった方へ
もしpip でのインストールがうまくいかない場合、最初からCondaを利用することをおすすめします。特に、依存関係が複雑なライブラリの場合、Condaは自動で解決してくれるので非常に便利です。
まとめ
- pygraphviz のインストールで「fatal error: 'graphviz/cgraph.h' not found」のようなエラーが出たら、Graphvizのパス設定やヘッダーファイルの問題を疑う。
- 解決できない場合、Condaを使えば簡単にインストール可能。
- PlantUMLやGraphvizを使った作業も快適に進められるようになりました。
エラーに苦戦している方の参考になれば幸いです!
Discussion