"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, чтобы эта библиотека работала только в этой оболочке.
Надеюсь, это поможет.