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

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

Ошибка импорта: /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
  • тензор потока r0.10
  • Анаконда2: 4.2

следующее находится в файле bashrc

  • экспорт PATH="/home/jj/anaconda2/bin:$PATH"
  • экспорт CUDA_HOME=/usr/local/cuda-8.0
  • экспорт 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}}

2 ответа

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

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

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.

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

Это помогло мне решить ту же проблему для тензорного потока из встроенного источника (без поддержки gpu), Ubuntu 16.04, Anaconda 4.2.0.

Источники: проблема, аналогичная построению TensorFlow из исходного кода в Ubuntu 16.04 с графическим процессором: "GLIBCXX_3.4.20" не найдена, что также указывает на это.

Я решил эту проблему, скопировав 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

Печатать

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

в терминале, решит проблему.

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

Мое приложение выдало ошибку с /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

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

Также я читал вот это:

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

Надеюсь на эту помощь.

Другие вопросы по тегам