尝试在Ubuntu 16.04 LTS上的anaconda3环境中从源构建tensorflow并且构建成功但是当我尝试时:
import tensorflow as tf
它给了我错误:
ImportError:/home/user/anaconda3/bin/../lib/libstdc++.so.6:版本 `GLIBCXX_3.4.20'找不到
我已查看并认为可能libgcc
已过时,所以我尝试conda install libgcc
安装了一个列有GLIBCXX_3.4.20
的新库;然而,似乎anaconda将其安装到虚拟环境中,但 tensorflow 正在anaconda3/lib
文件夹中查找它,我该如何解决这个问题?如果没有重新安装anaconda并从源代码重建(这需要很长时间),是否有一个简单的解决方案?
(tensorflow) user@user-VirtualBox:~$ 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) user@user-VirtualBox:~$ 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 :(得分:1)
我暂时解决了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.6
虚拟环境库,virtual-env-name
是虚拟环境名称:
ln -s ~/anaconda3/envs/virtual-env-name/lib/libstdc++.so.6 ./libstdc++.so.6
希望这对遇到同样问题的其他人有帮助。