libstdc++.so.6路径问题

如何将这个ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version CXXABI_1.3.13’ not found (required by /opt/aps/workdir/miniconda3/envs/paddle/lib/python3.10/site-packages/paddle/base/libpaddle.so)改为先找conda的环境中的

这个错误表明当前程序在运行时,加载的是系统路径下的 libstdc++.so.6,而不是 Conda 环境 提供的版本。要解决这个问题,可以让程序优先使用 Conda 环境 中的 libstdc++


解决方法

1. 找到 Conda 环境中的 libstdc++ 库

在 Conda 环境中,libstdc++.so.6 位于:

$CONDA_PREFIX/lib/libstdc++.so.6
  • $CONDA_PREFIX 是当前 Conda 环境的根目录路径。

您可以验证路径是否存在:

ls $CONDA_PREFIX/lib/libstdc++.so.6

2. 修改运行时库搜索路径

通过设置环境变量 LD_LIBRARY_PATH,让程序优先从 Conda 环境加载库文件。

临时修改(当前终端有效):

激活您的 Conda 环境后,执行以下命令:

export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
一步到位示例:
conda activate paddle
export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
python -c "import paddle; print('PaddlePaddle 加载成功')"

3. 永久修改(自动配置环境)

LD_LIBRARY_PATH 配置到环境变量中:

方法 1:修改环境变量文件

在当前用户的 .bashrc.zshrc 文件中添加:

export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH

保存后重新加载配置:

source ~/.bashrc
方法 2:Conda 环境专属配置

在目标 Conda 环境的激活脚本中配置:

  1. 编辑 Conda 环境的激活脚本:

    nano $CONDA_PREFIX/etc/conda/activate.d/env_vars.sh
    
  2. 添加以下内容:

    export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH
    
  3. 保存并退出,重新激活环境:

    conda deactivate
    conda activate paddle
    

4. 验证修改是否生效

使用以下命令检查当前使用的 libstdc++.so.6 路径:

ldd $CONDA_PREFIX/lib/python3.10/site-packages/paddle/base/libpaddle.so | grep libstdc++
  • 如果输出路径显示为 Conda 环境 下的 libstdc++.so.6,说明修改成功。

总结步骤

  1. 找到 Conda 环境下的 libstdc++.so.6 路径。
  2. 设置 LD_LIBRARY_PATH,优先加载 Conda 提供的库。
  3. 验证配置是否生效,确保不再加载系统库。

这将解决 CXXABI_1.3.13 版本不匹配的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值