Skip to content


Repository files navigation

Louvain Community Detection


Documentation Status


To build and install from source, run

python install

You can also install from pip with

pip install python-louvain

The package name on pip is python-louvain but it is imported as community in python. More documentation for this module can be found at


To use as a Python library

from community import community_louvain
import as cm
import matplotlib.pyplot as plt
import networkx as nx

# load the karate club graph
G = nx.karate_club_graph()

# compute the best partition
partition = community_louvain.best_partition(G)

# draw the graph
pos = nx.spring_layout(G)
# color the nodes according to their partition
cmap = cm.get_cmap('viridis', max(partition.values()) + 1)
nx.draw_networkx_nodes(G, pos, partition.keys(), node_size=40, 
                       cmap=cmap, node_color=list(partition.values()))
nx.draw_networkx_edges(G, pos, alpha=0.5)

It can also be run on the command line

$ community <filename>

where filename is a binary file as generated by the convert utility distributed with the C implementation at However as this is mostly for debugging purposes its use should be avoided. Instead importing this library for use in Python is recommended.


You can find documentation at

To generate documentation, run

pip install numpydoc sphinx
cd docs


To run tests, run

pip install nose
python test