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