0
点赞
收藏
分享

微信扫一扫

torch_geometric与scipy之间的依赖不匹配

小月亮06 2022-04-26 阅读 160
python

问题描述

问题定位:通过pycharm的错误定位返回,查看到时torch_geometric引入sicpy时版本不匹配,根据报错,是没有GLIBCXX_3.4.26

排故

1、在/usr/lib/x86_64-linux-gnu/libstdc++.so.6中查看所有GLIBCXX的版本

输入代码:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6|grep GLIBCXX

输出:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_DEBUG_MESSAGE_LENGT

最高版本是3.4.25,没有相对应的3.4.26版本

2、查看当前系统中的其他同类型的文件,找到一个版本比较高的,然后建议一个链接指向这里
sudo find / -name 'libstdc++.so.6*'

输出:

/home/hero/anaconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6.0.28
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.3.0-hd4cf53a_17/lib/libstdc++.so.6
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/lib/libstdc++.so.6.0.26
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/lib/libstdc++.so.6
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.26
/home/hero/anaconda3/pkgs/libstdcxx-ng-9.1.0-hdf63c60_0/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6
/home/hero/anaconda3/pkgs/libgcc-7.2.0-h69d50b8_2/lib/libstdc++.so.6.0.21
/home/hero/anaconda3/pkgs/libstdcxx-ng-11.2.0-he4da1e4_16/lib/libstdc++.so.6.0.29
/home/hero/anaconda3/pkgs/libstdcxx-ng-11.2.0-he4da1e4_16/lib/libstdc++.so.6
/home/hero/anaconda3/lib/libstdc++.so.6.0.26
/home/hero/anaconda3/lib/libstdc++.so.6
/home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6.0.29(选择这个高的版本查看)
/home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6
/home/hero/anaconda3/envs/histoqc/lib/libstdc++.so.6.0.28
/home/hero/anaconda3/envs/histoqc/lib/libstdc++.so.6
/home/hero/anaconda3/envs/athena/lib/libstdc++.so.6.0.28

使用同样的方法查看其是否包含所需要的版本

strings /home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6.0.29|grep GLIBCXX

输出:

GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBCXX_3.4.23
GLIBCXX_3.4.24
GLIBCXX_3.4.25
GLIBCXX_3.4.26
GLIBCXX_3.4.27
GLIBCXX_3.4.28
GLIBCXX_3.4.29

里面确实有我们需要的版本3.4.26

建立新的连接到这个文件上

1) 复制到指定目录

cp /home/hero/anaconda3/envs/GNN/lib/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/

2) 删除之前的链接

sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6

3)创建新的链接

sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29 /usr/lib/x86_64-linux-gnu/libstdc++.so.6

举报

相关推荐

0 条评论