You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

设置LD_LIBRARY_PATH后终端命令失效,及PIL导入错误求助

问题解决思路:Python导入PIL时的CXXABI版本错误及LD_LIBRARY_PATH冲突问题

问题背景

运行Python脚本时触发以下导入错误:

File "/home/<username>/miniconda3/<gitrepo>/eval.py", line 13, in <module> from dataset import dtu_jiayu
File "/home/<username>/miniconda3/<gitrepo>/dtu_jiayu.py", line 10, in <module> from dataset.utils import *
File "/home/<username>/miniconda3/<gitrepo>/utils.py", line 13, in <module> from PIL import Image
File "/home/<username>/miniconda3/lib/python3.9/site-packages/PIL/Image.py", line 100, in <module> from . import _imaging as core
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found

尝试执行export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/<username>/miniconda3/lib/解决问题后,终端基础命令(如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  

环境说明:大学集群服务器,使用miniconda基础环境。

可行解决思路

  • 临时为Python进程指定LD_LIBRARY_PATH:
    避免全局修改环境变量污染终端,直接在运行Python脚本时临时设置路径:

    LD_LIBRARY_PATH=/home/<username>/miniconda3/lib:$LD_LIBRARY_PATH python /home/<username>/miniconda3/<gitrepo>/eval.py
    

    此操作仅对当前Python进程生效,不影响其他终端命令。

  • 使用LD_PRELOAD优先加载conda的libstdc++:
    先确认conda环境的libstdc++.so.6包含所需版本:

    strings /home/<username>/miniconda3/lib/libstdc++.so.6 | grep CXXABI
    

    确认存在CXXABI_1.3.9后,临时让后续进程优先加载该库:

    export LD_PRELOAD=/home/<username>/miniconda3/lib/libstdc++.so.6
    

    退出当前终端后环境自动恢复,不会破坏系统全局配置。

  • 创建独立conda虚拟环境:
    隔离项目依赖与基础环境,避免版本冲突:

    conda create -n project_env python=3.9
    conda activate project_env
    # 安装依赖,以pillow为例
    conda install pillow  # 或 pip install pillow
    

    虚拟环境的依赖独立于系统和基础conda环境,能有效规避库版本不兼容问题。

  • 联系集群管理员升级系统libstdc++:
    集群系统库由管理员统一维护,若多个用户遇到同类问题,可申请管理员升级系统的libstdc++.so.6,从根源解决版本缺失问题。

内容的提问来源于stack exchange,提问作者Damian Kopp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 22:10:28