anaconda下import xgboostエラーversion`GLIBCXX_3.4.22' not found
9695 ワード
ubuntuでpipにxgboostをインストールした後、anacondaに入るとimportにエラーが発生します
ネット上で多くの答えを探して、すべてこの問題をよく解決していないことを発見して、しかし私達はまずfindコマンドを利用してlibstdc++を探すことができます.so*
この検索はグローバルで、私の結果は以下の通りです.
上の結果に注意して、/usr/libの下にも見つかりましたし、/home/your_name/anaconda 3で見つけました.最初は/usr/libの下で操作していましたが、下のリンクの方法を使ってlibstdc++対応のバージョン(ここでは3.4.22)をダウンロードし、リンクを作成しました.
http://blog.csdn.net/xiaolong2w/article/details/23915171
最終的に上のリンクに従ってGLIBCXXを検索する
対応するバージョンが見つかる(GLIBCXX_3.4.22)
しかしanacondaに入るとimport xgboostは、まだ上のエラーが発生しているので、anacondaのディレクトリの下にあるべきかと思ったら、anacondaディレクトリに入りました
上記のリンクに従って、対応するバージョンのlibstdc++(ここではlibstdc+.so.6.0.2)をこのディレクトリにコピーし、libstdc++を削除します.so.6以降、このディレクトリの下にリンクを作成
再びanacondaに入り、import xgboostは成功しました
version `GLIBCXX_3.4.22' not found
ネット上で多くの答えを探して、すべてこの問題をよく解決していないことを発見して、しかし私達はまずfindコマンドを利用してlibstdc++を探すことができます.so*
sudo find / -name 'libstdc++.so*'
この検索はグローバルで、私の結果は以下の通りです.
/usr/share/gdb/auto-load/usr/lib/i386-linux-gnu/libstdc++.so.6.0.22-gdb.py
/usr/share/gdb/auto-load/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22-gdb.py
/usr/lib/libstdc++.so.6.0.17
/usr/lib/i386-linux-gnu/libstdc++.so.6.0.22
/usr/lib/i386-linux-gnu/libstdc++.so.6
/usr/lib/libstdc++.so.6.0.22
/usr/lib/gcc/x86_64-linux-gnu/6/libstdc++.so
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.22
/usr/lib/x86_64-linux-gnu/libstdc++.so.6
/usr/lib/libstdc++.so.6
/home/cike/.local/share/Trash/files/libstdc++.so.6.0.22
/home/cike/.local/share/Trash/info/libstdc++.so.6.0.22.trashinfo
/home/cike/anaconda3/lib/libstdc++.so
/home/cike/anaconda3/lib/libstdc++.so.6.0.21
/home/cike/anaconda3/lib/libstdc++.so.6
/home/cike/anaconda3/pkgs/libgcc-5.2.0-0/lib/libstdc++.so
/home/cike/anaconda3/pkgs/libgcc-5.2.0-0/lib/libstdc++.so.6.0.21
/home/cike/anaconda3/pkgs/libgcc-5.2.0-0/lib/libstdc++.so.6.0.22
/home/cike/anaconda3/pkgs/libgcc-5.2.0-0/lib/libstdc++.so.6
/home/cike/anaconda3/pkgs/libgcc-4.8.5-2/lib/libstdc++.so
/home/cike/anaconda3/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6.0.19
/home/cike/anaconda3/pkgs/libgcc-4.8.5-2/lib/libstdc++.so.6
上の結果に注意して、/usr/libの下にも見つかりましたし、/home/your_name/anaconda 3で見つけました.最初は/usr/libの下で操作していましたが、下のリンクの方法を使ってlibstdc++対応のバージョン(ここでは3.4.22)をダウンロードし、リンクを作成しました.
http://blog.csdn.net/xiaolong2w/article/details/23915171
最終的に上のリンクに従ってGLIBCXXを検索する
strings /usr/lib/libstdc++.so.6 | grep GLIBC
対応するバージョンが見つかる(GLIBCXX_3.4.22)
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_3.4.20
GLIBCXX_3.4.21
GLIBCXX_3.4.22
GLIBC_2.3
GLIBC_2.2.5
GLIBC_2.14
GLIBC_2.4
GLIBC_2.18
GLIBC_2.3.4
GLIBC_2.17
GLIBC_2.3.2
GLIBCXX_DEBUG_MESSAGE_LENGTH
しかしanacondaに入るとimport xgboostは、まだ上のエラーが発生しているので、anacondaのディレクトリの下にあるべきかと思ったら、anacondaディレクトリに入りました
/home/your_name/anaconda3/pkgs/libgcc-4.8.5-2/lib
上記のリンクに従って、対応するバージョンのlibstdc++(ここではlibstdc+.so.6.0.2)をこのディレクトリにコピーし、libstdc++を削除します.so.6以降、このディレクトリの下にリンクを作成
rm libstdc++.so.6
ln -s libstdc++.so.6.0.22 libstdc++.so.6
再びanacondaに入り、import xgboostは成功しました
Python 3.6.1 |Anaconda custom (64-bit)| (default, May 11 2017, 13:09:58)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import xgboost
/home/cike/anaconda3/lib/python3.6/site-packages/sklearn/cross_validation.py:44: DeprecationWarning: This module was deprecated in version 0.18 in favor of the model_selection module into which all the refactored classes and functions are moved. Also note that the interface of the new CV iterators are different from that of this module. This module will be removed in 0.20.
"This module will be removed in 0.20.", DeprecationWarning)
>>> import xgboost
>>>