事情的起因是我在安装环境的时候import matplotlib报错了:

/lib/x86_64-linux-gnu/libstdc++.so.6: version GLIBCXX_3.4.29' not found (required by /data3/shizhen/miniforge3/envs/threestudio2/lib/python3.11/site-packages/matplotlib/_c_internal_utils.cpython-311-x86_64-linux-gnu.so)

遇到这个错误我还是比较诧异的,因为我使用的是conda install matplotlib,一般来说会根据anaconda gcc的情况安装最合适的版本,然而这一次吃瘪了。chatgpt推荐我看看那个目录下有没有GLIBCXX_3.4.29。

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

得到的结果是:
为什么我的运气能这么差
刚好到29结束。然后我尝试了很多方法,包括让matplotlib降版本。但是chatgpt最后告诉我了一个比较方便的方法:

conda install -c conda-forge libstdcxx-ng=12

这样能够更新anaconda内部的c++库,相当于在anaconda内部进行了一个安装。libstdc++ 在gcc9就支持29了,但是为了保险起见,还是安装一个12。
然后还需要手动将当前环境的gcc库作为这个终端的gcc库(默认使用的是系统的)

export LD_LIBRARY_PATH=$CONDA_PREFIX/lib:$LD_LIBRARY_PATH

然后安装完后通过下面命令进行查询:

ldd $(python -c "import matplotlib._c_internal_utils as m; print(m.__file__)")

出现这个结果就是好了

最后修改:2025 年 06 月 30 日
如果觉得我的文章对你有用,请随意赞赏