Skip to content

hautahi/IM_GreedyCELF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 

Repository files navigation

IM_GreedyCELF

Jupyter Notebook source code for a blog post comparing two key Influence Maximization algorithms - Greedy and CELF

Installing igraph

I've often run into trouble getting the igraph package successfully plotting the igraph objects. This is quite a common problem, so the following is the installation method that I use in the bash shell of my mac, including my virtual environment setup:

  • Install pycairo: $ brew install py2cairo
  • Create a new virtual environment: $ mkvirtualenv -p pythonX environment_name
  • Install the relevant python packages: $ pip install matplotlib pandas numpy python-igraph jupyterlab cairocffi
  • Add the environment to the jupyter notebook: $ python -m ipykernel install --name=environment_name

The above should successfully install the package with Python 2. But for Python 3 code, there's another very annoying step. We need to edit a particular igraph package source file. Its location will differ depending on your machine setup, but mine is located at ~/Envs/environment_name/lib/python3.7/site-packages/igraph/drawing/__init__.py.

Within this file, there is a method _repr_svw_() that we need to edit. At approximately line 354, we need to replace io.getvalue().encode("utf-8") with io.getvalue().decode("utf-8"). The relevant github commit that details this change is here. There are also many stack overflow posts about this issue (see here and here for example).

Other Notes

  • List the kernels available to jupyter with $ jupyter kernelspec list
  • Remove a kernel with $ jupyter kernelspec uninstall environment_name
  • List virtual enviroments with $ lsvirtualenv
  • Remove a virtual enviroment with $ rmvirtualenv environment_name