anaconda下import xgboost报错version `GLIBCXX_3.4.22' not found

来源:互联网 发布:stm32单片机编程软件 编辑:程序博客网 时间:2024/05/16 04:27

ubuntu下pip安装xgboost后,进入anaconda后import出现错误

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/anaconda3下找到了,一开始我一直在/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.4GLIBCXX_3.4.1GLIBCXX_3.4.2GLIBCXX_3.4.3GLIBCXX_3.4.4GLIBCXX_3.4.5GLIBCXX_3.4.6GLIBCXX_3.4.7GLIBCXX_3.4.8GLIBCXX_3.4.9GLIBCXX_3.4.10GLIBCXX_3.4.11GLIBCXX_3.4.12GLIBCXX_3.4.13GLIBCXX_3.4.14GLIBCXX_3.4.15GLIBCXX_3.4.16GLIBCXX_3.4.17GLIBCXX_3.4.18GLIBCXX_3.4.19GLIBCXX_3.4.20GLIBCXX_3.4.21GLIBCXX_3.4.22GLIBC_2.3GLIBC_2.2.5GLIBC_2.14GLIBC_2.4GLIBC_2.18GLIBC_2.3.4GLIBC_2.17GLIBC_2.3.2GLIBCXX_DEBUG_MESSAGE_LENGTH

但是进入anaconda后import xgboost,仍然出现上面的错误,因此我在想是否应该在anaconda的目录下,结果进入anaconda目录

/home/your_name/anaconda3/pkgs/libgcc-4.8.5-2/lib

仍然按照上面链接里的做法,将对应版本的libstdc++(我这里是libstdc++.so.6.0.22)复制到该目录,删除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 linuxType "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>>> 
阅读全文
0 0