【已解决】导入tensorflow出现ImportError

原先在Ubuntu16.04下运行的tensorflow是1.1版的,今天将Python升级为3.6.5版,用Anaconda安装了tensorflow1.4.1,安装没有出现问题提示,在导入tensorflow时出现:

ImportError: /home/ctr/anaconda3/lib/python3.6/site-packages/tensorflow/python/../../../../libstdc++.so.6: version `CXXABI_1.3.11' not found (required by/home/ctr/anaconda3/lib/python3.6/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)

开头以为是/libstdc++库缺失的问题,于是:

sudo apt-get update
sudo apt-get install libsc

问题依旧,后来按如下方式解决:

1.检查动态库

$ strings /home/ctr/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6 | grep CXXABI

输出如下:

CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_TM_1
CXXABI_FLOAT128

确实没有问题中所说的CXXABI_1.3.11

2.查看libstdc++.so.6的链接指向

$ ls -l /home/ctr/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6

可以看到指向的是libstdc++.so.6.0.21

3.查找编译gcc时生成的最新动态库

可以看到最新动态库是libstdc++.so.6.0.25,最新目录:/home/ctr/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.25

4.将上面的最新目录复制到出现问题的目录下

cp  /home/ctr/anaconda3/x86_64-conda_cos6-linux-gnu/sysroot/lib/libstdc++.so.6.0.25  /home/ctr/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6

5.更新动态库指向

cd /usr/lib
rm –rf  libstdc++.so.6
ln -s libstdc++.so.6.25 libstdc++.so.6 

6.默认动态库指向更新完成,重新检查一下

strings /home/ctr/anaconda3/lib/python3.6/site-packages/matplotlib/../../../libstdc++.so.6 | grep CXXABI

输出如下:

已经有了问题中所说的CXXABI_1.3.11。

测试一下。导入已正常:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值