ha's notepad II

メモ書きです。

続・GraphillionをWindowsにインストールしようとしている→できた

追記(2015/1/25)

最新バージョンのGraphillionを使い、https://github.com/takemaru/graphillion/wikiに従えば問題なく無事インストールに成功し、チュートリアルも動作した。めでたしめでたし。


以下、過去の出来事

Linux機が挙動不審なためメイン機(Win7 64bit)に何とかしてGraphillionの環境を整えようとすることに。

開発者さんの日本語解説https://github.com/takemaru/graphillion/wikiを読むと、WindowsではAnacondaを利用するのが推奨されていた。前回は何とか使わないでもいけないかと試行錯誤してみたが、思いきってPythonをアンインストールしてしまい、Anacondaを入れなおすことを決意した。

あとは解説に書いてあるとおり、パスを通してIPythonからコマンドを打ってビルドしてみた。
これで何とかなるか・・・と思ったら、ビルドは警告を出しつつも成功したのだが、テストしてみようとすると途中で「python.exeは動作を停止しました」の文字が・・・
その際のコンソールへの表示は以下のとおり。

In [12]: run setup.py test

running test
running egg_info
writing Graphillion.egg-info\PKG-INFO
writing top-level names to Graphillion.egg-info\top_level.txt
writing dependency_links to Graphillion.egg-info\dependency_links.txt
reading manifest file 'Graphillion.egg-info\SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'Graphillion.egg-info\SOURCES.txt'
running build_ext
copying build\lib.win-amd64-2.7\_graphillion.pyd ->
test_binary_operators (graphillion.test.graphset.TestGraphSet) ...

ここまで表示されて落ちてしまった。

テストには失敗するものの、これをスキップしてrun setup.py installでインストールするまではエラーも出ず成功した。
さあ、とにかくテストを兼ねてチュートリアルを実行してみようとした。

In [1]: from graphillion import GraphSet as gs

In [2]: import graphillion.tutorial as tl

In [3]: univ = tl.grid(8,8)

In [4]: gs.set_universe(univ)

ここまでは問題なく行ったが、次の

In [5]: tl.draw(univ)

で、以下のエラーメッセージが。

---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-4-574648453ea0> in <module>()
----> 1 tl.draw(univ)

C:\Anaconda\lib\site-packages\graphillion-0.96-py2.7-win-amd64.egg\graphillion\t
utorial.pyc in draw(g, universe)
     59     if not isinstance(universe, nx.Graph):
     60         universe = nx.Graph(list(universe))
---> 61     n = sorted(universe[1].keys())[1] - 1
     62     m = universe.number_of_nodes() / n
     63     g.add_nodes_from(universe.nodes())

C:\Anaconda\lib\site-packages\networkx\classes\graph.pyc in __getitem__(self, n)

    317         {1: {}}
    318         """
--> 319         return self.adj[n]
    320
    321

KeyError: 1

さらに、

In [6]: paths = gs.paths(1,81)

を実行しようとしたら、また「python.exeは動作を停止しました」・・・。
ああもう。