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
解决
- 按照 https://www.cnblogs.com/kevingrace/p/9456563.html,下载包解压,下载依赖包解压链接,编译安装。
- 按照该博文,重新链接
libstdc++.so.6
。 - 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.1
到 libgcc_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!🎉