2017-08-27 116 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 

希望這對有同樣問題的人有幫助。

相關問題