2017-08-27 73 views
0

尝试在Ubuntu 16.04 LTS和anaconda3环境中从源构建tensorflow打造成功,但是当我尝试:tensorflow ImportError:/home/user/anaconda3/bin/../lib/libstdc++.so.6:版本'GLIBCXX_3.4.20'找不到

import tensorflow as tf 

它给我的错误:

ImportError: /home/user/anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

我已经通过看并推断它可能是libgcc是旧的,所以我想这conda install libgcc不安装新上市的GLIBCXX_3.4.20图书馆;然而,似乎anaconda安装到虚拟环境,但tensorflow正在寻找它在anaconda3/lib文件夹,我该如何解决这个问题?是否有一个简单的解决方案,无需重新安装anaconda并从源重建(这需要很长时间)?

(tensorflow) [email protected]:~$ strings /home/user/anaconda3/bin/../lib/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_FORCE_NEW 
GLIBCXX_DEBUG_MESSAGE_LENGTH 

conda install libgcc安装新libgcc到虚拟环境中的文件夹:

(tensorflow) [email protected]:~$ strings /home/user/anaconda3/envs/tensorflow/lib/libstdc++.so.6 | grep GLIBCXX 
GLIBCXX_DEBUG_MESSAGE_LENGTH 
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 

正如你可能已经注意到,/home/user/anaconda3/envs/tensorflow/lib/libstdc++.so.6确实有GLIBCXX_3.4.20列出,但/home/user/anaconda3/bin/../lib/libstdc++.so.6没有。

回答

0

我暂时解决了以下this answer的问题,这里是我做过什么:

1)激活虚拟环境:

source activate virtual-env-name 

2)安装的libstdc++.so.6一个较新的版本,在我的情况下libgcc版本是5+anaconda3

conda install libgcc 

3)进入anaconda3/lib文件夹:

cd ~/anaconda3/lib 

4)备份libstdc++.so.6

mv -vf libstdc++.so.6 libstdc++.so.6.old 

5)链接在这里的虚拟环境下图书馆新安装libstdc++.so.6virtual-env-name是虚拟环境名称:

ln -s ~/anaconda3/envs/virtual-env-name/lib/libstdc++.so.6 ./libstdc++.so.6 

希望这对有同样问题的人有帮助。

相关问题