ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9‘ not found when loading Pandas
我们可以看到CXXABI_1.3.9是存在的,但是程序运行时找不到,只需要将该路径加入环境变量$LD_LIBRARY_PATH即可。查看/libstdc++.so.6: version `CXXABI_1.3.9’是否存在?
❓问题1
在尝试导入 pandas 的某个模块时,系统无法找到所需的 libstdc++.so.6 库的特定版本(CXXABI_1.3.9)。libstdc++.so.6是一个共享库文件,它是 GNU 标准 C++ 库的一部分,用于支持 C++ 程序的运行。
import pandas._libs.window.aggregations as window_aggregations
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found
(required by
/home/username/software/miniconda3/envs/llama_factory/lib/python3.10/site-packages/pandas/_libs/window/aggregations.cpython-310-x86_64-linux-gnu.so)
🕵️♀️原因1
系统库版本过低:系统中安装的libstdc++.so.6库版本低于CXXABI_1.3.9,而pandas的某些模块需要这个更高版本的库才能正常运行。
而升级libstdc++库一般是需要管理员权限,但普通用户也可以在 Anaconda 或 Miniconda环境中安装或更新libstdc++。
🚀解决1
因此,查看在miniconda3的lib中是否存在/libstdc++.so.6: version CXXABI_1.3.9。
strings /home/username/software/miniconda3/lib/libstdc++.so.6 |grep CXXABI
CXXABI_1.3
CXXABI_1.3.1
CXXABI_1.3.2
CXXABI_1.3.3
CXXABI_1.3.4
CXXABI_1.3.5
CXXABI_1.3.6
CXXABI_1.3.7
CXXABI_1.3.8
CXXABI_1.3.9
CXXABI_1.3.10
CXXABI_1.3.11
CXXABI_1.3.12
CXXABI_1.3.13
CXXABI_1.3.14
CXXABI_1.3.15
CXXABI_TM_1
CXXABI_FLOAT128
CXXABI_1.3
CXXABI_1.3.15
CXXABI_1.3.11
CXXABI_1.3.2
CXXABI_1.3.6
CXXABI_FLOAT128
CXXABI_1.3.12
CXXABI_1.3.9
CXXABI_1.3.1
CXXABI_1.3.5
CXXABI_1.3.8
CXXABI_1.3.13
CXXABI_1.3.4
CXXABI_TM_1
CXXABI_1.3.7
CXXABI_1.3.14
CXXABI_1.3.10
CXXABI_1.3.3
我们可以看到CXXABI_1.3.9是存在的,但是程序运行时仍然报错找不到,只需要将该路径加入环境变量$LD_LIBRARY_PATH即可。
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/username/software/miniconda3/lib
❓问题2
然而,在执行完上述步骤export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/haida_liuhao/software/miniconda3/lib 后,ls出现以下错误:
ls
ls: relocation error: /lib64/libacl.so.1: symbol getxattr, version ATTR_1.0 not defined in file libattr.so.1 with link time reference
🚀解决办法2
看到libattr.so.1是miniconda3/lib的而不是系统/usr/lib中的,这可能就是冲突的关键,重新命名修改完后,miniconda libattr.so.1文件已经被隐藏了,取而代之的是系统自带的同名文件,问题被解决。
更多推荐
所有评论(0)