0

igraphモジュールを使用してoptimal_modularityを実行するためのpythonスクリプトを作成しました。この関数はGLPKライブラリを使用しますが、python-glpkと実質的にすべてのglpk関連パッケージをインストールした後でもこのエラーが発生します:

 root@ubuntu:/home/abdou/Desktop/graphs# python graph.py
Traceback (most recent call last):
  File "graph.py", line 49, in <module>
    print g.community_optimal_modularity()
  File "/usr/lib/python2.7/dist-packages/igraph/__init__.py", line 1076, in community_optimal_modularity
    GraphBase.community_optimal_modularity(self, *args, **kwds)
NotImplementedError: Error at optimal_modularity.c:81: GLPK is not available, Unimplemented function call

これはスクリプトです:

    from igraph import *


g = Graph()

    g.add_vertex(1)
.
.
.
    g.add_vertex(20)

g.add_edge(1,2)

g.add_edge(12,0)

plot(g)
print g.community_optimal_modularity()
verClus = VertexClustering(g)

plot(verClus.cluster_graph())
4

2 に答える 2

2

python-igraphは、C で記述された igraph ライブラリに依存します。インストール方法によってpython-igraph、GLPK サポートでコンパイルされる場合とされない場合があります。GLPK を使用するコードは C レイヤーにあるため、コンパイルに GLPK をインストールするかpython-igraph、インストールするかは問題ではありません。重要なのは、最初にコンパイルしたときに GLPK がマシンに存在していたかどうかだけです。python-igraphpython-glpk python-igraph

したがって、python-igraph使用してインストールしpip、マシンに igraph の C コアが事前にない場合は、次のことを行う必要があります。

  1. アンインストールpython-glpkします (必要ありません)。
  2. アンインストールしpython-igraphます。
  3. すべての GLPK ライブラリがインストールされていることを確認します (開発ヘッダーも必ずインストールしてください)。
  4. 再インストールしpython-igraphます。

python-igraphその後、GLPK 自体がインストールされていることを検出する必要があり (対応する C コアをダウンロードしてコンパイルしようとするGLPK support -- yes初期段階で、または同様のものを含む行を探しpython-igraphます)、それ以降は使用できるようになりますGraph.optimal_modularity()

于 2015-02-12T15:42:18.290 に答える
0

クラスタリング メソッドを使用しており、代わりにメンバーシップを取得しています。私もGLPKに問題があったので、これがMacOSユーザーに役立つことを願っています.

于 2019-05-08T19:15:11.950 に答える