在tensorflow-gpu中找不到''CXXABI_1.3.8' - 从源代码安装

时间:2016-10-04 05:30:05

标签: python tensorflow cudnn

我重新安装了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)

环境

  • CUDA8.0
  • cuDNN 5.1
  • gcc 5.4.1
  • tensorflow r0.10
  • Anaconda2:4.2

以下是在bashrc文件

  • export PATH =“/ home / jj / anaconda2 / bin:$ PATH”
  • 导出CUDA_HOME = / usr / local / cuda-8.0
  • export PATH = / usr / local / cuda-8.0 / bin $ {PATH:+:$ {PATH}}
  • export LD_LIBRARY_PATH = / usr / local / cuda-8.0 / lib64 $ {LD_LIBRARY_PATH:+:$ {LD_LIBRARY_PATH}}

4 个答案:

答案 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/

终端中,将解决该问题。