graph-tool的编译安装

【Python高阶编程技术】第21篇 图计算与并行算法:NetworkX、igraph、graph-tool 对比 本文对比了Python三大图计算库NetworkX、igraph和graph-tool的性能特点与适用场景。NetworkX适合小型图原型开发,但受GIL限制;igraph内存效率高且支持部分并行;graph-tool性能最优但部署复杂。关键结论包括:1)大图处理首选igraph或graph-tool;2)并行计算应利用C层的OpenMP而非Python多进程;3)热点算法需用Cython/pybind11优化。文章通过PageRank基准测试(16核下graph-tool最快9秒)和代码示例,展示了图分割 阅读详情

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的问题,参照上面自行修改文件即可。


graph-tool程序库的使用文档 graph-tool是一个Python程序库,包括目前几乎所有成熟的图论算法和函数,底层使用C++语言的Boost Graph Libraries程序库实现所以运算速度远高于networkx。但是其官网服务器速度很慢,又没有离线文档可供使用。于是我将其官网文档做成PDF格式,即本资料。 立即下载

相关推荐

graph-tool-2.27.tar.bz2

Graph-tool is an efficient Python module for manipulation and statistical analysis of graphs (a.k.a. networks). Contrary to most other python modules with similar functionality, the core data structures and algorithms are implemented in C++, making extensive use of template metaprogramming, based heavily on the Boost Graph Library. This confers it a level of performance that is comparable (both in memory usage and computation time) to that of a pure C/C++ library.

graph-tool程序库的使用文档(中文)

Welcome to graph-tool’s documentation!¶graph-tool快速入门创建和操作图迭代顶点和边在顶点的邻域上迭代在没有描述符的情况下快速迭代顶点和边使用数组在顶点和边上进行更快的迭代属性映射内部属性映射图的I/O graph-tool快速入门 该graph_tool模块提供了一个Graph类以及在其上进行操作的几种算法。此类的内部原理和大多数算法是使用Boost Graph Library用C ++编写的,以提高性能 。 当然,必须先导入该模块,然后才能使用它。该软件包分

HolllllldOn的博客 2518

华为手机连接Win11失败?内核隔离与驱动签名冲突的终极解决指南

在Windows操作系统中,驱动程序是硬件与系统通信的桥梁,其数字签名机制是保障系统内核安全的核心防线。基于虚拟化的安全技术通过强制验证驱动签名,能有效隔离恶意代码,提升系统抵御高级威胁的能力。然而,严格的签名策略有时会与部分硬件驱动产生兼容性问题,导致设备无法识别,直接影响文件传输、应用调试等核心工作流。本文聚焦于华为手机在开启Windows 11内核隔离功能时出现的连接故障,深入剖析驱动签名验证与Hypervisor保护的代码完整性原理,并提供从驱动更新、策略调整到无线替代方案的完整解决路径,帮助用户在

weixin_31309419的博客 354

python安装graph-tool 和 torch_geometric,pytorch总结:

从PyG2.3开始,您可以安装和使用PyG,除了PyTorch之外,不需要任何外部库。查看电脑 cuda版本来安装,安装版本可以比电脑的低,不要比它高,高版本的兼容低版本的。

qq_45770988的博客 3080

BLDC六步换相驱动实战:从霍尔真值表到PWM调速的代码实现

本文详细解析了BLDC六步换相驱动原理,从霍尔真值表解读到PWM调速的代码实现,提供了基于STM32的实战方案。重点介绍了霍尔信号解码、换相状态机设计以及PWM动态调速策略,帮助开发者快速掌握无刷电机驱动技术。

weixin_28273593的博客 211

电商秒杀场景下,如何用Redis+Lua脚本实现原子性库存扣减(附完整代码)

本文针对电商秒杀场景下的高并发与超卖难题,详细解析了如何利用Redis的原子性命令与Lua脚本实现可靠的库存扣减。通过对比多种方案,阐述了Redis+Lua作为黄金搭档的技术原理,并提供了从基础扣减到预扣减模型的完整代码实现,确保在高并发下数据的一致性与系统性能。

weixin_29219539的博客 503

踩雷记录:安装graph-tool

安装graph_tool

weixin_47880303的博客 2517

模型量化必知:Per-Tensor和Per-Channel到底怎么选?

本文深入解析了模型量化中Per-Tensor与Per-Channel两种核心策略的抉择。Per-Tensor量化实现简单、硬件兼容性极佳,适合激活值或分布均匀的权重;而Per-Channel量化精度更高,能更好地处理权重分布不均的卷积层,是现代CNN权重量化的主流。文章提供了从硬件平台、数值分布到精度需求的实战决策框架,并推荐了“权重Per-Channel,激活Per-Tensor”的混合量化最佳实践。

assembly8low的博客 983

Graph-tool简介 - wiki

graph-tool is a Python module for manipulation and statistical analysis of graphs[disambiguation needed] (a.k.a. networks). graph-tool是一个操作和统计分析图表的Python模块。 The core data structures and algorithms ...

weixin_34378969的博客 588

【软件介绍】GWAS meta分析软件:METAL

Meta-analysis是对多个GWAS分析结果进行综合评价。METAL是GWAS meta分析最常用的工具之一,本文简单介绍METAL软件基本用法。

hucy_Bioinfo 1万+

1.Fay-UE5数字人工程导入(UE数字人系统教程)

ue5数字人系列教程(含源文件工程)

1万+

conda 安装 graph-tool, 无需编译

1. 添加以下channels到~/.condarc $ conda config --add channels conda-forge $ conda config --add channels ostrokach-forge 2. 安装graph-tool $ conda install graph-tool 3. 进入python terminal 检查是否安装成功...

weixin_30706507的博客 1771

CDD数据库文件制作(十一)——服务配置(0x19_DTC Code)

虽然选择Copy和Reference都可以加载DTC,但是如果我们在DTC库中有修改DTC,通过Copy的方式加载的DTC在DTC Table中不会跟着DTC库的修改而自动更新。通过Reference的方式加载的DTC可以自动更新。找到Fault Memory的DTC Table,鼠标放在DTC Table区域,右键点击选择Copy …根据需要(客户协议)勾选响应的19服务子功能。如何创建一个新的DTC code?按照字母与下方要素可做一一对应。首先在DTC库中新建DTC。支持10 01/10 03。

LOVE135149的博客 1917

boost python3_CentOS 7 安装boost和graph-tool python3.7环境

graph-tool需要的依赖比较多,下面仅列出了主要的部分,比较简单的依赖可以参考报错自行解决。需要注意的是,gcc8.3.0在编译的时候会有bug,升级到9.3.0之后问题消失。升级gcc之后需要重新编译py,否则跟graph-tool一起会报bug。1 安装boost1.1 下载并解压boost源码1.2 执行bootstrap脚本必须跟三个参数./bootstrap.sh --with-p...

weixin_34357232的博客 670

⭐️VMwareWorkstation17.0虚拟机安装搭建Windows 7虚拟机(完整图文详细步骤含配置VMware Tools教程)

本教程为大家提供了从安装VMware Workstation 17.0开始,到在虚拟机上成功搭建Windows 7专业版系统的完整步骤。我们详细介绍了准备阶段所需的软件和硬件要求,以及在VMware中配置和安装Windows 7系统的每一步操作。此外,我们还特别提到了如何在虚拟机上配置VMware Tools,以便更好地与宿主机进行交互。 通过本教程的学习,读者不仅能够掌握在VMware Workstation 17.0上安装Windows 7虚拟机的技能,还能了解到如何配置虚拟机的硬件以及安装VMwar

Python老吕的博客 2万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

ubuntu18.04下安装graph-tool

graph-tool很少人使用,由于不能直接pip安装,国内的源清华和豆瓣上都没有,因此采用conda和pip安装都不行。在官网上提供了很多种方法,地址官网安装说明。 第一种 使用conda切换channel的方法,终端上使用如下命令: conda config --add channels conda-forge conda search graph-tool --channel conda-forge conda install graph-tool 这个方法依然不行,ana...

HUSTHY的博客 3512

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

install - graph-tool

一般的python包可以用pip install 进行方便的安装。但是graph-tool不能靠像pip这种单纯的python包管理系统来安装。因为它的核心数据结构和算法是用C++写的,因此会有很多C++依赖性(比如依赖Boost, CGAL和expat)。

sunshine_drizzle的博客 6256

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

conda本地化安装graph-tool避坑指南:从下载到安装的完整流程

本文详细介绍了如何在Linux环境下通过conda本地化安装graph-tool 2.40的完整流程,包括离线包下载、预处理、环境配置及常见问题排查。特别针对网络不稳定情况,提供了使用`conda install --use-local`命令的本地化安装方案,帮助开发者高效完成部署。

weixin_30374009的博客 492

Tool Graph:HarmonyOS PC 如何统一所有系统能力?

本文探讨了AI时代操作系统能力组织方式的范式转变,从"应用驱动"(Application Driven)转向"能力驱动"(Capability Driven)。传统桌面系统以应用为核心的组织方式已无法满足AI代理跨应用调度的需求,催生了新型运行时层"Tool Graph"的诞生。文章系统阐述了以下关键观点: 能力边界超越应用边界:AI任务需要跨应用调度系统能力,而非调用完整应用 Tool成为运行时核心:从简单API升级为包含元数据、权限、规范的系统级对象 动态Tool Graph的形成:能力间天然形成依赖网

qq_36863796的博客 1万+

Ubuntu 14.04 安装graph-tool

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33695450的博客 378

通过graph-tool学习BGL

graph-tool 是 http://graph-tool.skewed.de/static/doc/quickstart.html

gwf421的专栏 1704

conda本地化安装实战:以graph-tool为例解决网络依赖难题

本文以graph-tool为例,详细介绍了conda本地化安装的完整实战流程。针对网络依赖下载难题,文章核心讲解了如何从Anaconda Cloud精准获取安装包、进行关键的重命名操作,并最终使用`conda install --use-local`命令成功完成离线安装。该方法能有效解决内网部署、环境固化等场景下的包管理困境。

sql99的博客 388

替代Omen Gaming Hub:OmenSuperHub如何一站式掌控暗影精灵风扇、功耗与灯效

OmenSuperHub 是一款面向惠普暗影精灵(HP OMEN)笔记本的第三方控制台,用于替代臃肿的 Omen Gaming Hub(OGH)。它可以在不联网、无广告的前提下,一站式完成风扇转速控制、CPU/GPU 功耗限制、键盘灯效自定义、Omen 键绑定以及温度功率监控,是暗影精灵玩家追求性能与静音平衡的实用工具。 [![OmenSuperHub 暗影精灵风扇控制与功耗管理控制台](htt

gitblog_01159的博客 276

Virtual-Display-Driver 虚拟显示器驱动|3步配好专属虚拟屏,OBS/远程/VR全场景覆盖

Virtual-Display-Driver 是一款 Windows 10/11 虚拟显示器驱动,能让系统多出一块行为与物理屏完全一致的虚拟显示器。它解决的核心问题是:没有屏幕、或屏幕规格不够用时,应用却"只认显示器"——无头服务器远程桌面、OBS 推流、VR 输出都绕不开这一点。它支持突破硬件限制的自定义分辨率、刷新率和 EDID,也支持 HDR。 ## 🔍 它到底能帮你解决什么问题 **

gitblog_00258的博客 205

python graph_Python——利用 graphtool 进行图的可视化处理

前言graph_tool 这是个专门用于对图进行可视化的 Python 库。虽然网上中文资料不足,但是他的英文文档还是非常全面的,很多设计的小细节也在文档里提及了,非常简单容易上手。下面就从一个初学者的记录下我的学习历程。安装虽然是个python库,但是毕竟是要做大量数据计算的,因此graphtool在底层使用了Boost, CGAL 和 expat这几个C++库(Boost是扩展的标准库,CGA...

weixin_39989980的博客 2701

用几行 Markdown 画出流程图、时序图和甘特图:nodeppt Mermaid 插件怎么用

nodeppt Mermaid 插件让你直接在 Markdown 文件里把流程图、时序图、甘特图写成代码块,页面打开时自动渲染成图形,不需要再打开任何图形软件。如果你经常要在演示里放架构图、业务流程或排期表,工程师、产品、项目经理都能五分钟上手,这个插件就适合你。 ## 代码块标上 mermaid,图就出来了 上手成本其实只有一行:把普通代码块标成 mermaid,nodeppt 在渲染页面时

gitblog_00910的博客 754
上一篇: python 合并dict
下一篇: python 多线程和多进程
yuxuan_hit
博客等级 码龄15年 2粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值