【已解决】ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found (required
鳗小鱼 2024-07-10 14:07:04 阅读 60
问题描述
今天遇到这样一个问题
具体问题描述如下:
Traceback (most recent call last):
File "/media/visionx/monica/newproject/globetrotter/main.py", line 13, in <module>
from torch.utils.tensorboard import SummaryWriter
File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/torch/utils/tensorboard/__init__.py", line 12, in <module>
from .writer import FileWriter, SummaryWriter # noqa: F401
File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/torch/utils/tensorboard/writer.py", line 9, in <module>
from tensorboard.compat.proto.event_pb2 import SessionLog
File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/tensorboard/compat/proto/event_pb2.py", line 6, in <module>
from google.protobuf import descriptor as _descriptor
File "/home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/google/protobuf/descriptor.py", line 28, in <module>
from google.protobuf.pyext import _message
ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/visionx/anaconda3/envs/globetrotter/lib/python3.8/site-packages/google/protobuf/pyext/_message.cpython-38-x86_64-linux-gnu.so)
原因分析和解决
这个是什么原因呢?
这个错误表明你的程序或库依赖的 <code>libstdc++.so.6 版本太低,无法满足要求。要解决这个问题,有几种可能的方法:
更新系统或者安装新版本的
libstdc++.so.6
:尝试更新你的系统或者手动安装新版本的libstdc++.so.6
库。
更新或重新安装相关的库:尝试更新或重新安装与
libstdc++.so.6
相关的库,例如google.protobuf
。
使用 conda 管理库的环境:如果你正在使用 conda 环境,你可以尝试创建一个新的 conda 环境并重新安装相关的库,以确保所有依赖项都被正确安装和配置。
尝试其他解决方案:如果以上方法都不起作用,你可能需要搜索并尝试其他用户报告的解决方案,或者在相关的论坛或社区寻求帮助。
libstdc++.so.6是什么,作用是什么?
`libstdc++.so.6` 是 GNU C++ 标准库的动态链接库文件,用于 C++ 程序的运行时支持。它提供了许多标准 C++ 库函数和类的实现,例如字符串处理、容器、算法等。在 Linux 系统中,许多 C++ 程序都依赖于这个库文件。
作用包括但不限于:
1. 提供了许多标准 C++ 库函数和类的实现,使得 C++ 程序员能够方便地使用这些功能。
2. 在运行时为 C++ 程序提供了必要的支持,包括内存管理、异常处理等。
3. 为不同的 C++ 程序提供了共享的库函数,从而节省了存储空间和系统资源。
4. 允许 C++ 程序在不同的系统上进行移植和共享,只要相同版本的库文件可用。
因此,`libstdc++.so.6` 对于 Linux 系统上运行 C++ 程序是非常重要的。
那说白了,就是一个和很多功能都相关的库函数!
既然是缺少了,我们怎么解决呢?
1、先看一下自己的版本是什么?
strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX
2、找到自己电脑其他环境中的最新版本
记住:一定要最新的,否则还是会报错!我这里是6.0.32
3、 用该库包替换
<code>sudo cp /home/visionx/anaconda3/envs/sentibase/lib/libstdc++.so.6.0.32 /usr/lib/x86_64-linux-gnu/
4、删除原来的链接
sudo rm /usr/lib/x86_64-linux-gnu/libstdc++.so.6
5、建立新的链接
sudo ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.32 /usr/lib/x86_64-linux-gnu/libstdc++.so.6
在此运行之前的命令即可运行成功
/home/visionx/anaconda3/envs/globetrotter/bin/python /media/visionx/monica/newproject/globetrotter/main.py
相关链接
如何解决version `GLIBCXX_3.4.29‘ not found的问题_version `glibcxx_3.4.29' not found-CSDN博客文章浏览阅读3.9w次,点赞113次,收藏200次。解决version `GLIBCXX_3.4.29' not found的问题_version `glibcxx_3.4.29' not found
https://blog.csdn.net/weixin_39379635/article/details/129159713libstdc++.so.6: version `GLIBCXX_3.4.29' not found · pybind/pybind11 · Discussion #3453 · GitHublibstdc++.so.6: version `GLIBCXX_3.4.29' not found
https://github.com/pybind/pybind11/discussions/3453
完结撒花
所谓的生活,应该就是人生理想吧!
上一篇: centos防火墙firewall-cmd限定特定的ip访问
下一篇: Linux如何修改主机名(hostname)(亲测可用)
本文标签
【已解决】ImportError: /lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29‘ not found (required
声明
本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。