我重新安装了Anaconda2。 当'python -c'导入tensorflow''
时,我收到以下错误ImportError:/home/jj/anaconda2/bin/../lib/libstdc++.so.6:找不到版本“CXXABI_1.3.8”(/home/jj/anaconda2/lib/python2.7/site要求-packages / tensorflow /蟒/ _pywrap_tensorflow.so)
答案 0 :(得分:26)
似乎是Anaconda 4的问题。*
您可以更新libgcc package以匹配您的本地版
conda update libgcc
但是下次update anaconda
这需要降级“由于依赖性冲突”。
或者你可以屏蔽anaconda libstdc ++,以便使用你的系统的libstdc ++
cd ~/anaconda2/lib
mv libstdc++.so libstdc++.so.bkp
mv libstdc++.so.6 libstdc++.so.6.bkp
您可以进一步(可选)直接在anaconda lib中创建一个软链接
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6
对于我来说,这对于内置源(非gpu支持)tensorflow,Ubuntu 16.04,Anaconda 4.2.0也存在同样的问题。
来源:与Building TensorFlow from source on Ubuntu 16.04 w/ GPU: `GLIBCXX_3.4.20' not found类似的问题,也指向this。
答案 1 :(得分:13)
我通过复制包含版本libstdc++.so.6
的{{1}}文件解决了这个问题。
首先尝试运行以下搜索命令:
CXXABI_1.3.8
如果它返回$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI_1.3.8
。然后你可以进行复制。
CXXABI_1.3.8
答案 2 :(得分:0)
我最终在这里寻找问题,出现相同的错误消息,但使用不同的应用程序。
我的应用程序给出了/lib64/libstdc++.so.6的错误,该错误指向/ lib64 / libstdc ++。so.6.0.19
在阅读了其他网站之后,我有点想出我必须“替换”我的/lib64/libstdc++.so.6所指出的位置,并在我的conda环境中找到一个较新的版本...所以:>
(sudo) rm /system/path/to/lib/libstdc++.so.6
(sudo) ln -s /path/to/conda/lib/libstdc++.so.6.0.26 /system/path/to/lib/libstdc++.so.6
因此,我认为这不是最佳解决方案,但随着用户最终使该应用程序正常运行。
我也读了here,
在运行TF之前设置LD_LIBRARY_PATH,因此此lib仅在此shell中有效。
希望获得帮助。
答案 3 :(得分:0)
输入
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jj/anaconda2/lib/
在终端中,将解决该问题。