我曾经这样使用这个模块:
import community
if __name__ == '__main__':
G = nx.karate_club_graph()
pos = nx.spring_layout(G)
partition = community.best_partition(G)
我安装了正确的模块:
sudo pip3 install python-louvain
我收到此错误:
AttributeError: module 'community' has no attribute 'best_partition'
据我所知,该文档遵循here中提供的文档。
答案 0 :(得分:2)
似乎其他一些人之前也遇到过此问题,请参见: https://bitbucket.org/taynaud/python-louvain/issues/23/module-has-no-attribute-best_partition
如果您安装了另一个称为社区的库,这可能会引起问题。这是我链接到的线程中提出的一种解决方案:
from community import community_louvain
partition = community_louvain.best_partition(G)
答案 1 :(得分:1)
我也是使用Networkx的初学者,但我在Jupyter笔记本中使用了以下语法,对我来说很好用。
!pip install python-louvain
from community import community_louvain
communities =community_louvain.best_partition(G)
问候,
答案 2 :(得分:1)
为了它的价值:我不得不
<块引用>pip卸载社区
然后
<块引用>pip install python-louvain
然后
<块引用>pip install networkx
为了让我的 conda py37 环境正常工作,并且能够在没有属性错误的情况下调用 community.best_partition()
。
我认为,如果您在 networkx
之前安装了 python-louvain
,它将声明 community
的命名空间并且不允许您运行您想要的。
答案 3 :(得分:0)
您应该在下面安装软件包。我用它,它的工作原理。
我将其安装在Windows中。
https://pypi.org/project/python-louvain/
在cmd中编写“ pip install python-louvain”,然后编写如下程序:
import community
import networkx as nx
import matplotlib.pyplot as plt
G = nx.erdos_renyi_graph(30, 0.05)
partition = community.best_partition(G)
size = float(len(set(partition.values())))
pos = nx.spring_layout(G)
count = 0
for com in set(partition.values()) :
count = count + 1
list_nodes = [nodes for nodes in partition.keys()if partition[nodes] == com]
nx.draw_networkx_nodes(G, pos, list_nodes, node_size = 20,node_color = str(count / size))
nx.draw_networkx_edges(G, pos, alpha=0.5)
plt.show()
我使用python 3.7
答案 4 :(得分:0)
您需要here中名为python-louvain
的软件包。
!pip install python-louvain
import networkx as nx
import community
import numpy as np
np.random.seed(0)
W = np.random.rand(15,15)
np.fill_diagonal(W,0.0)
G = nx.from_numpy_array(W)
louvain_partition = community.best_partition(G, weight='weight')
modularity2 = community.modularity(louvain_partition, G, weight='weight')
print("The modularity Q based on networkx is {}".format(modularity2))
基于networkx的模块化Q为0.0849022950503318
答案 5 :(得分:0)
我不确定为什么会出现以下情况,但似乎有另一个名为“community”的包不包含函数“community.best_partition”。如上所述,您想要“python-louvain”包,它似乎包含“社区”部分?!在 PyCharm 2020.3 中,在 Preferences -> Project: Python Interpreter 下,我删除了“community”包并添加了“python-louvain”包。之后,“导入社区”仍然像“community.best_partition”一样工作。