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

WSL2 Ubuntu22.04中PyBullet调用OpenGL失败求助

解决WSL2 Ubuntu 22.04中PyBullet GUI启动失败(OpenGL上下文创建失败)的问题

核心报错指向libGL error: MESA-LOADER: failed to open swrast: /home/dkapur17/anaconda3/envs/drl/lib/libstdc++.so.6: version GLIBCXX_3.4.30' not found,说明Anaconda环境中的libstdc++.so.6`版本不足,无法匹配系统LLVM-15库的依赖要求,导致OpenGL软渲染驱动加载失败,最终无法创建OpenGL上下文。以下是几种可行的解决方法:

方法1:临时优先加载系统的libstdc++库

运行PyBullet脚本前,强制程序使用系统自带的符合版本要求的libstdc++.so.6:

LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6 python your_pybullet_script.py

或者先设置环境变量再运行脚本:

export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libstdc++.so.6
python your_pybullet_script.py

方法2:更新Anaconda环境的libstdc++版本

通过conda-forge安装兼容的libstdcxx-ng包,替换环境中的旧版本:

conda activate drl
conda install -c conda-forge libstdcxx-ng

安装完成后重新启动PyBullet验证。

方法3:替换Anaconda环境的libstdc++软链接到系统库

如果方法2无效,可直接将Anaconda环境的libstdc++.so.6链接到系统版本:

conda activate drl
cd $CONDA_PREFIX/lib
# 备份原文件
mv libstdc++.so.6 libstdc++.so.6.bak
# 创建软链接到系统库
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6

方法4:指定PyBullet使用兼容的OpenGL版本

从glxinfo输出可知,系统最高支持OpenGL 4.2版本,可在PyBullet连接时明确指定版本,避免尝试创建过高版本的上下文:

import pybullet as p
# 指定使用OpenGL 4.2上下文
p.connect(p.GUI, options="--opengl_version=4")

验证系统libstdc++版本

可先确认系统自带的libstdc++.so.6是否包含GLIBCXX_3.4.30:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.30

若输出包含该版本号,说明系统库满足要求,方法1/3即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 12:58:49