12
votes

I have re-installed Anaconda2. And I got the following error when 'python -c 'import tensorflow''

ImportError: /home/jj/anaconda2/bin/../lib/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /home/jj/anaconda2/lib/python2.7/site-packages/tensorflow/python/_pywrap_tensorflow.so)

environment

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

the following is in bashrc file

  • export PATH="/home/jj/anaconda2/bin:$PATH"
  • export 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

4 Answers

28
votes

Seems to be a problem with Anaconda 4.*

You can either update the libgcc package to match your local version

conda update libgcc

but this will require downgrading "due to dependency conflicts" next time you update anaconda.

OR you can mask the anaconda libstdc++ so that your system's libstdc++ is used

cd ~/anaconda2/lib
mv libstdc++.so libstdc++.so.bkp
mv libstdc++.so.6 libstdc++.so.6.bkp

You can further (optionally) create a softlink inside the anaconda lib directly

ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6

These worked for me for the same problem for built-from-source (non-gpu support) tensorflow, Ubuntu 16.04, Anaconda 4.2.0.

Sources: Similar problem to Building TensorFlow from source on Ubuntu 16.04 w/ GPU: `GLIBCXX_3.4.20' not found which also points back to this.

13
votes

I solved this problem by copying the libstdc++.so.6 file which contains version CXXABI_1.3.8.

Try run the following search command first:

$ strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep CXXABI_1.3.8

If it returns CXXABI_1.3.8. Then you can do the copying.

$ cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 /home/jj/anaconda2/bin/../lib/libstdc++.so.6

0
votes

I ended up here looking for my problem, same error message but different app.

My app gave the error with /lib64/libstdc++.so.6 which was pointing to /lib64/libstdc++.so.6.0.19

After reading other webs, I kind of figured out I had to "replace" to where my /lib64/libstdc++.so.6 was pointing out and a newer version was located in my conda environment... so:

(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

So I guess it's not the best solution but as user finally get the app works.

Also I read here, this:

Set the LD_LIBRARY_PATH before you run TF, so this lib would only be effective in this shell.

Hope this help.

0
votes

Typing

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/jj/anaconda2/lib/

in the terminal, will solve the problem.