web-dev-qa-db-fra.com

"'CXXABI_1.3.8' introuvable" dans tensorflow-gpu - installation à partir de la source

J'ai réinstallé Anaconda2. Et j'ai eu l'erreur suivante lorsque 'python -c' importe tensorflow ''

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

environnement

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

ce qui suit est dans le fichier bashrc

  • 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}}
11
user6918955

Semble être un problème avec Anaconda 4. *

Vous pouvez soit mettre à jour le libgcc package pour correspondre à votre version locale

conda update libgcc

mais cela nécessitera une rétrogradation "en raison de conflits de dépendance" la prochaine fois que vous update anaconda.

OU vous pouvez masquer l'anaconda libstdc ++ afin que libstdc ++ de votre système soit utilisé

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

Vous pouvez en outre (en option) créer directement un lien logiciel dans la bibliothèque anaconda

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

Ceux-ci ont fonctionné pour moi pour le même problème pour le tensorflow construit à partir de la source (non pris en charge par GPU), Ubuntu 16.04, Anaconda 4.2.0.

Sources: Problème similaire à Construction de TensorFlow à partir de la source sur Ubuntu 16.04 avec GPU: `GLIBCXX_3.4.20 'introuvable qui a également renvoie à this .

28
gevang

J'ai résolu ce problème en copiant le libstdc++.so.6 fichier contenant la version CXXABI_1.3.8.

Essayez d'abord d'exécuter la commande de recherche suivante:

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

S'il renvoie CXXABI_1.3.8. Ensuite, vous pouvez faire la copie.

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

13
Xer

Je me suis retrouvé ici à la recherche de mon problème, même message d'erreur mais application différente.

Mon application a donné l'erreur avec /lib64/libstdc++.so.6 qui pointait vers /lib64/libstdc++.so.6.0.19

Après avoir lu d'autres sites Web, j'ai en quelque sorte compris que je devais "remplacer" là où mon /lib64/libstdc++.so.6 pointait et une version plus récente était située dans mon environnement conda ... donc:

(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

Donc, je suppose que ce n'est pas la meilleure solution, mais en tant qu'utilisateur, l'application fonctionne enfin.

J'ai aussi lu ici , ceci:

Définissez LD_LIBRARY_PATH avant d'exécuter TF, afin que cette bibliothèque ne soit efficace que dans ce shell.

J'espère que cette aide.

0
Javier Tognarelli