❓问题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.1miniconda3/lib的而不是系统/usr/lib中的,这可能就是冲突的关键,重新命名修改完后,miniconda libattr.so.1文件已经被隐藏了,取而代之的是系统自带的同名文件,问题被解决。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐