使用@jit装饰器运行Python代码时出现libGL库错误求助
问题解决:Fedora 36 + Anaconda 下使用@jit(cuda)出现libGL/GLIBCXX版本错误
问题背景
在Fedora 36系统上使用Anaconda 22.11.1运行带有以下装饰器的Python代码时:
@jit(target_backend ="cuda", forceobj=True)
出现大量libGL相关错误,核心提示为:
libGL error: MESA-LOADER: failed to open iris: /home/mohammad/anaconda3/lib/python3.9/site-packages/PIL/../../../././libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /usr/lib64/dri/iris_dri.so)
推测错误与matplotlib的图表输出相关。
解决方案
1. 临时优先使用系统libstdc++
运行脚本前设置环境变量,强制调用系统自带的高版本libstdc++:
export LD_PRELOAD=/usr/lib64/libstdc++.so.6 python your_script.py
2. 更新Anaconda环境的libstdc++库
激活目标conda环境后,安装conda-forge提供的更新版libstdcxx:
conda activate your_env_name conda install -c conda-forge libstdcxx-ng
该包会替换环境内旧版本的libstdc++.so.6,满足GLIBCXX_3.4.30的版本要求。
3. 修改matplotlib后端避免GL依赖
如果不需要交互式图表显示,在代码开头指定非交互式后端:
import matplotlib # 使用Agg后端,无需加载桌面GL库 matplotlib.use('Agg') import matplotlib.pyplot as plt
4. 全面更新conda环境依赖
执行全量更新确保所有包依赖兼容:
conda activate your_env_name conda update --all
内容的提问来源于stack exchange,提问作者Mohammad Javad Shamloo
相关产品推荐
相关产品推荐

