Step 1. 下載igraph c core
在想安裝igraph C core的地方mkdir,例如~/igraphcore
下載http://igraph.org/nightly/get/c/igraph-0.7.1.tar.gz
./configure --prefix=~/igraphcore --disable-graphml
如果沒有disable-graphml,我們就必須安裝libxml2這個函式庫
make
make install (把編譯出的函式庫move到~/igraphcore)
(configure, setup.py要下哪些參數,可以從
./configure --help
setup.py --help得知,setup.py --help-commands有更完整的指令列表)
Step 2. 安裝python-igraph
在想安裝python-igraph的地方mkdir,例如~/igraph
http://igraph.org/nightly/get/python/python-igraph-0.7.0.tar.gz
修改setup.py裡面的LIBIGRAPH_FALLBACK_INCLUDE_DIRS和LIBIGRAPH_FALLBACK_LIBRARY_DIRS
在LIBIGRAPH_FALLBACK_INCLUDE_DIRS加上'/home/user/igraph/include/igraph'來告訴setup.py我們的C core include資料夾在哪裡 (也可以只留下'/home/user/igraphcore/include/igraph',把'/usr/include/igraph'等其他都刪掉)
在LIBIGRAPH_FALLBACK_LIBRARY_DIRS加上'/home/user/igraphcore/lib'來告訴setup.py我們的C core lib資料夾在哪裡(一樣也可以只留下'/home/user/igraphcore/lib')
python setup.py build_py (產生的東西會在build資料夾裡)
python setup.py install_lib --no-download -d ~/igraph (把東西move到~/igraph裡)
(install_lib參數是從setup.py --help-commands知道的
--no-download參數是看setup.py原始碼知道的,加上這項才不會因為偵測不到igraph c core而又重新下載編譯一次)
Step 3.
export PYTHONPATH=/home/user (把/home/user加入python的search path裡面,才能import igraph。另一個方法是在python script裡面sys.path.append('/home/user'))
export LD_LIBRARY_PATH=/home/user/igraphcore/lib (因為python-igraph會需要動態連結igraph C core library,但Linux的dynamic loader並不知道igraph C core library在哪裡,所以我們需要用LD_LIBRARY_PATH來告訴dynamic loader該library的位置)
※實際上任何套件都可以用類似上述的步驟安裝在任何一個資料夾下面,不需要root權限