夜阑卧听风吹雨

铁马冰河入梦来

Loading

CentOS 6.9 python3.10 numpy 安装使用 - gcc 升级

踩坑记录

程序写好了,使用了 pandas,放在服务器上,运行报错:

Original error was: /lib64/libgcc_s.so.1: version `GCC_4.8.0' not found (required by /usr/local/lib/python3.10/site-packages/numpy/core/../../numpy.libs/libgfortran-040039e1.so.5.0.0)

可以看到是导入 numpy 的时候报错了。

看到这个找不到,又是熟悉的版本太低的问题😅。服务器系统版本:

[root@n94 ~]# cat /etc/centos-release 
CentOS release 6.9 (Final)

先找找看有没有相关文章,避免踩坑。

首先根据这篇 https://www.jianshu.com/p/c039aa623665 安装 gcc-7.3.0,看着没什么坑。

实际操作,报异常:

error: ‘aligned_alloc’ was not declared in this scope

然后找到:https://www.cfnotes.com/archives/32,安装 gcc-7.2.0,结果错误依旧一样😂。

挺奇怪这篇文章中的 centOS 系统版本更低,竟然没有异常。估计是该台服务器的 gcc 以前已经被更新过了= =

最后,决定安装一个更低的版本,装个 gcc 5.0 满足 numpy 就好。

等待包下载过程中又找到 https://www.cnblogs.com/kevingrace/p/9456563.html

该文章中,查看的环境(默认 gcc 版本)与笔者服务器信息一致,这应该是系统默认的版本。大喜过望,得知这个版本可以正常升级:gcc-6.4.0

解决

  1. 按照 https://www.cnblogs.com/kevingrace/p/9456563.html,下载包解压,下载依赖包解压链接,编译安装。
  2. 按照该博文,重新链接 libstdc++.so.6
  3. numpy 使用到的是 libgcc_s.so.1,需要再链接一下。

依葫芦画瓢,找到 /path/to/gcc-6.4.0/stage1-x86_64-pc-linux-gnu/libgcc/libgcc_s.so.1,复制为 libgcc_s-6.4.0.so.1
移动到 /lib64,重新链接 libgcc_s.so.1libgcc_s-6.4.0.so.1

[root@n94 lib64]# ll libgcc*
-rwxr-xr-x 1 root root  93320 Mar 14  2018 libgcc_s-4.4.7-20120601.so.1
-rwxr-xr-x 1 root root 719951 Jun  6 16:25 libgcc_s-6.4.0.so.1
lrwxrwxrwx 1 root root     19 Jun  6 16:26 libgcc_s.so.1 -> libgcc_s-6.4.0.so.1
lrwxrwxrwx 1 root root     28 Jul  1  2022 libgcc_s.so.1_old -> libgcc_s-4.4.7-20120601.so.1

然后,python numpy 即可正常 import!🎉

posted @ 2023-06-06 17:30  二次蓝  阅读(695)  评论(0编辑  收藏  举报