igraph不能使用GLPK

时间:2015-02-12 14:25:47

标签: python ubuntu ubuntu-14.04 igraph glpk

我刚刚使用igraph模块编写了一个python脚本来执行optimal_modularity,这个函数使用了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())

2 个答案:

答案 0 :(得分:2)

python-igraph取决于使用C语言编写的igraph库。根据您安装python-igraph的方式,可能可能使用GLPK支持编译。由于使用python-igraph中的GLPK的代码位于C层,因此在编译python-igraph之后安装GLPK 或安装{{1}时无关紧要};唯一重要的是,当您第一次编译 python-glpk时,您的机器上是否存在GLPK。

因此,假设您使用python-igraph安装了python-igraph并且您的计算机上没有预先设置igraph的C核心,则需要:

  1. 卸载pip(不需要它)。
  2. 卸载python-glpk
  3. 确保安装了所有GLPK库(确保也安装了开发标头)。
  4. 重新安装python-igraph
  5. python-igraph然后应检测到GLPK本身已安装(在python-igraph下载相应的C核并尝试编译它时,在早期阶段查找包含GLPK support -- yes或类似内容的行)从那时起你就可以使用python-igraph

答案 1 :(得分:0)

我正在使用聚类方法,而是获得成员资格。希望这对MacOS用户有帮助,因为我也遇到了GLPK的问题。