python3错误:使用python3执行.py文件遇到:*ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found

使用python3执行.py文件遇到:ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9’ not found(required by /home/hongqiang/anaconda3/lib/python3.6/site-packages/matplotlib/_path.cpython-36m-x86_64-linux-gnu.so)

libstdc++.so.6在系统中存在于

/usr/lib/libstdc++.so.6
/usr/lib64/libstdc++.so.6(python3默认先去lib64下查找)


根据问题提示,应该是系统中的libstdc++.so.6与anaconda3中的版本不一样或者没找到对应版本

1.分别查看对应的版本

  • 系统
    strings /usr/lib64/libstdc++.so.6 | grep 'CXXAB
    这里写图片描述
  • anaconda3
    strings ~/a
### 解决 Anaconda 环境中 libstdc++ 库缺少特定版本的问题 当遇到 `ImportError` 提示 `/lib64/libstdc++.so.6: version 'CXXABI_1.3.9' not found` 的情况时,这通常是因为系统中的 `libstdc++.so.6` 版本与 Anaconda 中使用的版本不匹配或缺失所需 ABI 版本[^2]。 #### 方法一:更新 Conda 和相关包 确保所有软件包都是最新版本可以解决问题: ```bash conda update conda conda update --all ``` 这种方法通过升级整个环境来尝试修复依赖关系问题。 #### 方法二:安装兼容的编译器运行库 如果上述方法未能解决问题,则可以通过安装具体版本的 GCC 运行时库来提供所需的 ABI 支持: ```bash conda install -64 ``` 这条命令会向基础环境中添加适用于 Linux 64位系统的GCC运行时支持文件。 #### 方法三:手动替换共享对象文件 对于某些特殊情况,可能需要直接覆盖系统级别的 `libstdc++.so.6` 文件。然而,在大多数情况下并不推荐这样做,因为可能会破坏其他应用程序的功能。更安全的做法是在用户目录下创建软链接指向正确版本的动态链接库: ```bash mkdir -p ~/custom_lib/ cp /path/to/correct_version_of/libstdc++.so.6 ~/custom_lib/ echo "export LD_LIBRARY_PATH=~/custom_lib:\$LD_LIBRARY_PATH" >> ~/.bashrc source ~/.bashrc ``` 此操作将使当前用户的程序优先加载自定义路径下的 `.so` 文件而不是默认位置的那些[^1]。 #### 验证解决方案的有效性 完成以上任一步骤之后,建议重新启动终端并测试 Python 是否能够正常导入之前报错的相关模块。也可以使用 `strings` 命令检查新版本的 `libstdc++.so.6` 是否包含了必要的 ABI 符号表项: ```bash strings ~/custom_lib/libstdc++.so.6 | grep CXXABI_1.3.9 ``` 如果输出显示存在该字符串,则说明已成功解决了这个问题[^3]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值