graph-tool的编译安装

graph-tool网络分析工具是一个高效的基于c++ boost的分析工具。
可以进行多种可视化分析,上几张图:
K-core decomposition of a network of network scientists.
图K-core decomposition of a network of network scientists

Adjacency matrix spectrum for the political blog network.
图Adjacency matrix spectrum for the political blog network.

确实是一个非常强大的复杂网络图分析工具,貌似还能够进行社区发现等,稍后进行发掘。

这里先介绍怎么安装,graph-tool的编译安装非常麻烦,依赖的c++库很多。下载 这里是用ubuntu14.04和python2.7进行的安装。

1.GCC, version 4.8 or above (version 4.9 is recommended). For MacOS X, the clang compiler is required. gcc不必说,ubuntu本就自带了。

2.The Boost libraries, version 1.54 or above. boost的安装比较麻烦,先从官网下载包。
boost依赖mpi库,支持正则表达式的UNICODE字符集,libbz

apt-get install mpi-default-dev
apt-get install libicu-dev
apt-get install libbz2-dev
tar -jxvf boost_1_54_0.tar.bz2
cd boost_1_54_0
./bootstrap.sh --prefix=/usr/local  #这里prefix是指定安装目录,也可以没有,没有的话指定安装为/usr/local/include 库路径为/usr/local/lib/boost
sudo ./b2 install

可以写个cpp文件测试

#include<iostream>
#include<boost/bind.hpp>
using namespace std;
using namespace boost;
int fun(int x,int y){
    return x*y;
}
int main(){
    int m=1;int n=2;
    cout<<boost::bind(fun,_1,_2)(m,n)<<endl;
    return 0;
}

如果编译运行通过,那么成功安装。

g++ test.cpp -o test
./test

结果输出为3,参考自这里
3.The expat library. 下载

tar zxvf expat-2.0.1.tar.gz
cd expat-2.0.1
./configure
sudo make install

4.SciPy和Numpy都比较普遍,可以自行找到

5.CGAL

sudo apt-get install libcgal-dev # install the CGAL library

6.sparsehash 可选不需要功能的话可以用参数忽略

7.The GTK+ 3, cairomm, pycairo and matplotlib libraries, used for graph drawing (optional)
GTK+3可以自行查找,需要的东西比较多,但是写的人也挺多
cairomm1.0和pycairo都在这里可以下载 ,安装过程比较简单,和上面很多个包差不多,在INSTALL文件里说明得很清楚。

8.Graphviz 包,可选,网上很多教程可以自行参照

之后就可以编译运行啦!!

./configure #如果没有error的话就可以进行下一步,否则根据提示进行补装或重装
make    #过程很长
sudo ./make install

终端输入python,输入以下代码看是否成功:

from graph_tool.all import *

如果没有错误的话,证明是成功了,有错的话,可能是安装错误。
注意了,如果提示的是以下错误是因为用的是python2.7如果用python3的话,没有任何问题

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.7/dist-packages/graph_tool/all.py", line 35, in <module>
    from graph_tool.draw import *
  File "/usr/lib/python2.7/dist-packages/graph_tool/draw/__init__.py", line 797, in <module>
    from .cairo_draw import graph_draw, cairo_draw, get_hierarchy_control_points, default_cm
  File "/usr/lib/python2.7/dist-packages/graph_tool/draw/cairo_draw.py", line 1855, in <module>
    from .. community import get_hierarchy_tree, NestedBlockState, BlockState, OverlapBlockState
  File "/usr/lib/python2.7/dist-packages/graph_tool/community/__init__.py", line 128, in <module>
    from . blockmodel import minimize_blockmodel_dl, BlockState, mcmc_sweep, \
  File "/usr/lib/python2.7/dist-packages/graph_tool/community/blockmodel.py", line 2832, in <module>
    from . covariate_blockmodel import *
  File "/usr/lib/python2.7/dist-packages/graph_tool/community/covariate_blockmodel.py", line 269
    def context_wrapper(*args, revert=False):
                                    ^
SyntaxError: invalid syntax

改正参考 官方给出的:
修改/src/graph_tool/community/covariate_blockmodel.py
sudo vim /src/graph_tool/community/covariate_blockmodel.py
保存即可

def __merge_decorator(func):
    @contextlib.contextmanager
    #这里改
    def context_wrapper(*args, revert=False):       
    return func(*args, revert=revert)
    #改为
    def context_wrapper(self, l_src, l_tgt, revert=False):
        return func(self, l_src, l_tgt, revert=revert)

    #这里改
    def wrapper(*args, revert=False):
        gen = context_wrapper(*args, revert=revert)
    #改为
    def wrapper(self, l_src, l_tgt, revert=False):
        gen = context_wrapper(self, l_src, l_tgt, revert=revert)
        #之后正常
        if revert:
            return gen
        else:

好了接下来就可以使用了,官方参考文档有使用方法

下面介绍简单方法(可能功能不全):
1.修改/etc/apt/sources.list

deb http://downloads.skewed.de/apt/trusty trusty universe
deb-src http://downloads.skewed.de/apt/trusty trusty universe

打开软件中心,添加apt-key文件
之后apt-get update,这样需要的Pre-compiled Packages就基本可以下下来,之后:
python2

apt-get install python-graph-tool

python3

apt-get install python3-graph-tool

如果发现import不成功,再进行编译安装也会少很多步骤。依然会出现python2的问题,参照上面自行修改文件即可。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果无法通过网络连接安装graph-tool,你可以使用以下步骤进行离线安装: 1. 下载graph-tool源码 首先需要从graph-tool的官方网站(https://graph-tool.skewed.de/)下载源码包。选择与你的操作系统和Python版本相对应的源码包。 2. 安装依赖库 在安装graph-tool前,需要先安装一些依赖库。这些依赖库可以通过以下命令安装: ``` sudo apt-get update sudo apt-get install -y build-essential libboost-all-dev libxml2-dev libxslt-dev python3-dev python3-pip ``` 3. 安装Graphviz和Cairo ``` sudo apt-get install -y graphviz libcairo2-dev ``` 4. 解压并编译源码 将下载的graph-tool源码包解压后,在终端中进入解压后的目录,执行以下命令: ``` ./configure make sudo make install ``` 在执行`./configure`命令时,可以通过添加`--prefix`参数指定graph-tool安装的路径,例如: ``` ./configure --prefix=/opt/graph-tool ``` 这将把graph-tool安装到`/opt/graph-tool`目录下。 5. 配置Python 在安装完成后,需要将graph-tool添加到Python的搜索路径中。可以通过在`~/.bashrc`文件中添加以下行来实现: ``` export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH export CPLUS_INCLUDE_PATH=/usr/local/include:$CPLUS_INCLUDE_PATH export C_INCLUDE_PATH=/usr/local/include:$C_INCLUDE_PATH export PYTHONPATH=/usr/local/lib/python3/dist-packages:$PYTHONPATH ``` 如果你在第4步中指定了graph-tool安装路径,则需要相应地修改以上代码中的`/usr/local`为你指定的路径。 完成以上步骤后,就可以在离线环境中使用graph-tool了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值