"CXXABI_1.3.8" не найден "в tensorflow-gpu - установить из источника

Я повторно установил Anaconda2. И я получил следующую ошибку, когда "python -c" импортирует shadoworflow ''

ImportError:/home/jj/anaconda2/bin/../lib/libstdc++.so.6: версия `CXXABI_1.3.8 'не найдена (требуется/home/jj/anaconda2/lib/python2.7/site -packages/tensorflow/Python/_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"
  • 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}}

Ответ 1

Кажется, проблема с Anaconda 4. *

Вы можете либо обновить libgcc пакет в соответствии с вашей локальной версией

conda update libgcc

но это потребует понижения "из-за конфликтов зависимостей" в следующий раз, когда вы update anaconda.

ИЛИ вы можете замаскировать anaconda libstdС++, чтобы использовать вашу систему libstdС++

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

Они работали для меня по той же самой проблеме для встроенного источника (non-gpu support) тензорного потока, Ubuntu 16.04, Anaconda 4.2.0.

Источники: Аналогичная проблема для Создание TensorFlow из источника на Ubuntu 16.04 с GPU:` GLIBCXX_3.4.20 'не найден, который также указывает вернуться к this.

Ответ 2

Я решил эту проблему, скопировав файл libstdc++.so.6, содержащий версию CXXABI_1.3.8.

Сначала попробуйте выполнить следующую команду поиска:

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

Если он возвращает CXXABI_1.3.8. Затем вы можете выполнить копирование.

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

Ответ 3

Я оказался здесь в поиске своей проблемы, того же сообщения об ошибке, но другого приложения.

Мое приложение выдало ошибку с /lib64/libstdc++.so.6, который указывал на /lib64/libstdc++.so.6.0.19

Прочитав другие сети, я как-то понял, что мне нужно "заменить" туда, куда указывал мой /lib64/[CN]].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

Так что я думаю, что это не лучшее решение, но, как пользователь наконец-то получил приложение, работает.

Также я читаю здесь, это:

Установите LD_LIBRARY_PATH перед запуском TF, чтобы эта библиотека работала только в этой оболочке.

Надеюсь, это поможет.