我刚刚使用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())
答案 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核心,则需要:
pip
(不需要它)。python-glpk
。python-igraph
。 python-igraph
然后应检测到GLPK本身已安装(在python-igraph
下载相应的C核并尝试编译它时,在早期阶段查找包含GLPK support -- yes
或类似内容的行)从那时起你就可以使用python-igraph
。
答案 1 :(得分:0)
我正在使用聚类方法,而是获得成员资格。希望这对MacOS用户有帮助,因为我也遇到了GLPK的问题。