CentOS6.5 环境下调用lightgbm库报错: OSError: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/python3/lib/python3.6/site-packages/lightgbm/lib_lightgbm.so)

1、为何报错?

  因工作需要在linux环境下运行一些python代码,用到了lightgbm库,而因为CentOS6.5的glibc版本内置是比较低的,而python代码编译时用了较高的版本。

2、网上的解决方案

  百度以后发现是比较常见的错误,网上给出的方式一般是分两种

  1、使用类似 libstdc++.so.6.0.26 的一个文件替换原有的 动态链接库

    本人尝试该方法没有成功,不过找到了对应文件(libstdc.so_.6.0.26),似乎多数地方都需要C币,在此免费分享给大家。

    具体使用方法推荐下述链接,希望使用该方法就可以解决问题。

博客链接:https://blog.csdn.net/u012811841/article/details/77854581/
文件链接:http://www.vuln.cn/wp-content/uploads/2019/08/libstdc.so_.6.0.26.zip

  2、第二种是尝试编译整个库,也没有成功,而且比较费时间,对编译了解的比较多的人可以尝试一下,这里就不贴链接了。

  3、第三种是修改依赖程度的,这个没有做过尝试。贴一下链接,可能会提供一些思路,但方法并未尝试过。

博客链接:https://www.cnblogs.com/jhc888007/p/9400450.html

 

3、最终选用的方法(推荐)

 下图是系统glibc的版本,gcc的版本是4.8.2。

strings /lib64/libc.so.6 |grep GLIBC

扫描二维码关注公众号,回复: 8053263 查看本文章

 红框部分需要做如下操作就可以得到,也就解决了报错。

直接使用 wget 命令下载 rpm文件并安装,如果速度太慢可以直接下载再上传。

wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-common-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-devel-2.17-55.el6.x86_64.rpm
wget http://copr-be.cloud.fedoraproject.org/results/mosquito/myrepo-el6/epel-6-x86_64/glibc-2.17-55.fc20/glibc-headers-2.17-55.el6.x86_64.rpm

sudo rpm -Uvh glibc-2.17-55.el6.x86_64.rpm glibc-common-2.17-55.el6.x86_64.rpm glibc-devel-2.17-55.el6.x86_64.rpm glibc-headers-2.17-55.el6.x86_64.rpm

strings /lib64/libc.so.6 |grep GLIBC

再次查看glibc,发现glibc 2.14 已经有了,并且最新的已经到了 2.17版本。

希望不要再被这种没意思的问题所困扰。 

猜你喜欢

转载自www.cnblogs.com/karbon/p/11973989.html