【Anaconda】解决“libGL error: MESA-LOADER: failed to open iris”问题
在使用Anaconda环境跑python代码调用pygame的过程中,出现如下报错:
libGL error: MESA-LOADER: failed to open iris: /home/quintus/anaconda3/envs/deeptyping/lib/python3.7/site-packages/PIL/../../../././libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /lib/x86_64-linux-gnu/libLLVM-15.so.1) (search paths /usr/lib/x86_64-linux-gnu/dri:\$${ORIGIN}/dri:/usr/lib/dri, suffix _dri) libGL error: failed to load driver: iris
目前问题解决,总结一下查找资料以及解决方法。
首先搜索github中相关的issue:
`GLIBCXX_3.4.21’ not found #841
运行如下命令,发现本地支持GLIBCXX_3.4.30
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
而在自己创建的conda环境中的lib下出现`GLIBCXX_3.4.30’ not found 的情况。
stackoverflow中的“libGL error: MESA-LOADER: failed to open iris”问题/questions/72110384/libgl-error-mesa-loader-failed-to-open-iris中提供了一个参考解决方案,及为conda环境下的libstdc++.so.6 建立软链接:
$ cd /home/$USER/miniconda/lib$ mkdir backup # Create a new folder to keep the original libstdc++$ mv libstd* backup # Put all libstdc++ files into the folder, including soft links$ cp /usr/lib/x86_64-linux-gnu/libstdc++.so.6 ./ # Copy the c++ dynamic link library of the system here$ ln -s libstdc++.so.6 libstdc++.so$ ln -s libstdc++.so.6 libstdc++.so.6.0.19
在上述解决方案中,将第一行命令的lib路径换成自己创建的conda环境lib路径,运行指令,问题解决。