Python运行Chameleon聚类触发Segmentation fault段错误求解决方案
问题根因定位
从错误栈可以直接确认,崩溃发生在METIS图分区库的底层C接口调用阶段,同一份代码在其他同版本Ubuntu设备正常运行,完全是当前设备的METIS依赖环境异常导致的,和上层Chameleon聚类的业务代码无关。
排查修复步骤
- 第一步:彻底清理现有错误的METIS相关安装
先卸载Python层面的metis绑定,再卸载系统层面的原生metis库:pip uninstall -y metis sudo apt remove --purge -y libmetis-dev metis - 第二步:重新安装官方匹配版本的METIS依赖
先装系统原生库,再装对应版本的Python绑定:sudo apt update sudo apt install -y libmetis-dev metis pip install metis==0.2a5 - 第三步:验证METIS安装是否正常
打开Python交互界面运行以下代码,没有报错就是安装正常:import metis # 测试基础分区功能 G = metis.example_networkx() (edgecuts, parts) = metis.part_graph(G, 3) print(edgecuts, parts) - 第四步:如果上述操作还是报错,检查Anaconda环境的库冲突
你当前使用的是Anaconda的Python环境,可能存在conda安装的库和系统库冲突,尝试在conda环境内单独安装metis:conda install -c conda-forge metis pip install metis==0.2a5 - 额外排查点:如果你的数据集节点数过少,也可能触发metis底层的边界异常,可以先拿项目自带的示例数据集运行,排除数据集本身的问题。
内容的提问来源于stack exchange,提问作者sharkbear
相关产品推荐
相关产品推荐

