search
LoginSignup
0
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

posted at

updated at

Windows10のPython3でigraphを使うまで

iGraphが使えなかった!!

市販本の「Pythonによるテキストマイニング入門」に載っていたigraphのサンプルを動かしたいと思いました。
パッケージをインストールするまでに色々と失敗したので他の人の参考になればなと書いて見ました。

間違った作業

Pythonでは、色々なパッケージを

pip install パッケージ

または

py -m pip install パッケージ

でインストールすることができます。
なぜにpyコマンドなのかは
https://qiita.com/mkgask/items/d741578efb13aac7db0e
に詳しく書かれていました。

とりあえずigraphでネットワーク図を描くサンプルコードを動かしたかったので特になにも考えず

py -m pip install igraph

とやってしまいました。そうするとjgraphがどうのというエラーが出るので

py -m pip install jgraph

とやってしまいました。この両方間違いです。
やってしまった方は

py -m pip uninstall igraph
py -m pip uninstall jgraph

でアンインストールしておきましょう。

pythonでigraphを使うために必要なもの

igraphをpythonから使うためにはigraph本体とそれをpythonから利用するためのパッケージが必要です。しかしigraphを使うためにcairoがそしてcairoを入れるためにmsys2がさらに必要です。

ひとまずmsys2をインストールします。
http://www.msys2.org
こちらのトップページからダウンロードしてインストールします。
現状のWindowsならほとんど64bit版だと思うのでmsys2-x86_64...をダウンロードしインストールします。
そうすると、コマンドラインのような画面が開きます。
そこで使えるパッケージマネージャpacmanをアップデートしてからcairoをインストールします。

pacman -Syu
pacman -S mingw64/mingw-w64-x86_64-cairo

これでmsys2は終了です。

つぎに
https://www.lfd.uci.edu/~gohlke/pythonlibs/
から二つのwheelファイルをダウンロードします。
非公式らしいのでご利用は自己責任で。
pycairoと、python-igraphになります。

こちら大量のファイルがあるのでサイト内検索でpycairoやpython-igraphを検索してみてください。
まずはサイト上部にある一覧からヒットしますんでクリックします。
そうすると、ファイルがたくさんあります。
例えば
pycairo_1.17.1_cp35_cp35m_win32.whlや pycairo_1.17.1_cp35_cp35m_win_amd64.whlなどあります。
Windowsが64bit版なら 末尾amd64.whlの方を選んでください。

そして大事なのはcp35_cp35mのところです。こちらはpythonのバージョンになります。ご自分のpythonバージョンと合わせてください。
例えば、python -Vで 3.5.4とでればcp35_cp35mを、3.6.7と出ればcp36_cp36mを選んでください。
これを間違えるとインストールできません。ここも結構悩みました。

Windows、Pythonともにバージョンを合わせて二つダウンロードします。
そして、Powershellやcmdなどのコマンドラインを開きます。cdコマンドでファイルをダウンロードしたフォルダにカレントディレクトリを移します。もしくはフルパスでファイルを指定します。

py -m pip install ファイル名

でパッケージを2つインストールします。
これで使えるはずです。

参考にさせていただいたのは下記のサイトです。
https://hytmachineworks.hatenablog.com/entry/2017/04/22/171620

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
0
Help us understand the problem. What are the problem?