Anaconda ImportError: /usr/lib64/libstdc++.so.6: 找不到版本 'GLIBCXX_3.4.21'
Anaconda ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found
当我尝试在 conda 环境中运行 Python 脚本时,我收到以下导入错误
(squad) azada@scholar-fe00:~/Desktop/Toy-Problem-Team-2 $ python3 train.py
Traceback (most recent call last):
File "train.py", line 21, in <module>
from tensorboardX import SummaryWriter
File "/home/azada/miniconda3/envs/squad/lib/python3.6/site-packages/tensorboardX/__init__.py", line 5, in <module>
from .torchvis import TorchVis
File "/home/azada/miniconda3/envs/squad/lib/python3.6/site-packages/tensorboardX/torchvis.py", line 11, in <module>
from .writer import SummaryWriter
File "/home/azada/miniconda3/envs/squad/lib/python3.6/site-packages/tensorboardX/writer.py", line 15, in <module>
from .event_file_writer import EventFileWriter
File "/home/azada/miniconda3/envs/squad/lib/python3.6/site-packages/tensorboardX/event_file_writer.py", line 28, in <module>
from .proto import event_pb2
File "/home/azada/miniconda3/envs/squad/lib/python3.6/site-packages/tensorboardX/proto/event_pb2.py", line 7, in <module>
from google.protobuf import descriptor as _descriptor
File "/home/azada/miniconda3/envs/squad/lib/python3.6/site-packages/google/protobuf/descriptor.py", line 47, in <module>
from google.protobuf.pyext import _message
ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/azada/miniconda3/envs/squad/lib/python3.6/site-packages/google/protobuf/pyext/_message.cpython-36m-x86_64-linux-gnu.so)
编写strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
命令具有以下输出
GLIBCXX_3.4
GLIBCXX_3.4.1
GLIBCXX_3.4.2
GLIBCXX_3.4.3
GLIBCXX_3.4.4
GLIBCXX_3.4.5
GLIBCXX_3.4.6
GLIBCXX_3.4.7
GLIBCXX_3.4.8
GLIBCXX_3.4.9
GLIBCXX_3.4.10
GLIBCXX_3.4.11
GLIBCXX_3.4.12
GLIBCXX_3.4.13
GLIBCXX_3.4.14
GLIBCXX_3.4.15
GLIBCXX_3.4.16
GLIBCXX_3.4.17
GLIBCXX_3.4.18
GLIBCXX_3.4.19
GLIBCXX_DEBUG_MESSAGE_LENGTH
如您所见,所需的libgcc
版本不存在。但是我不明白为什么python要在/usr
目录中寻找GLIBCXX
?
在我的 anaconda 环境的libstdc++.so.6
上运行相同的命令表明文件中存在所需的版本。
我正在使用我大学的计算集群,所以我没有管理员权限。
有什么方法可以让 Python 使用我的 conda 环境的libstdc++
而不是/usr
目录中的?
我花了一天的时间研究这个问题,在我的研究型大学的计算集群上遇到了与您相同的规格的完全相同的问题,我终于找到了正确的堆栈溢出线程。不幸的是,上述答案在这里都不起作用,但我可以非常自信地说,即使错误回溯的来源不同,链接线程中的详细信息也应该可以解决您的问题。
总而言之,您需要将路径添加到anaconda
toLD_LIBRARY_PATH
中lib
文件夹:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/your/path/to/conda/env/lib
就我而言,我只是做了:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:~/anaconda3/lib
。它就像一个魅力!
这也值得一试,因为它最终对我有用:
conda install -c conda-forge libstdcxx-ng
说明:我在尝试import tensorflow as tf
时收到此错误:
ImportError: /opt/conda/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /opt/conda/lib/python3.8/site-packages/tensorflow/python/_pywrap_tensorflow_internal.so)
我已经安装了libgcc-ng
。还值得注意的是,我已经添加了附加到LD_LIBRARY_PATH
的 conda 库路径和系统库路径,但这对我不起作用。所以,YMMV。
通过降级到 libgcc==5.2.0 来解决它
最初,尝试使用 pip 安装,但如果您收到错误:无法下载和编译 igraph 的 C 内核..通过conda安装它
运行此代码,您的问题应该得到解决,
conda install -c conda-forge gcc
- std::map<struct,struct>::find 找不到匹配项,但是如果我循环通过 begin() 到 end(),我在那里看到匹配项
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 为什么野牛仍在使用"int yylex(void)",却找不到"int yylex(YYS
- C++ Windows 驱动程序MSB3030无法复制该文件,因为它找不到
- 奇怪的(对我来说)返回声明 - 在谷歌上找不到任何关于它的信息
- 找不到QtResource文件中的文件
- VC++本机单元测试,找不到调试符号
- RegGetValue在当前用户下找不到名称
- 带有 -stdlib=libc++ 的 clang++ 9.0.1 找不到<optional>
- c++找不到具有相同哈希的无序集合元素
- 找不到以下加速库:boost_fiber
- 找不到 FLTK(缺少:FLTK_INCLUDE_DIR)
- 设置 Visual Studio for MPI: 找不到标识符错误
- "assimp/config.h"找不到,但它在文件夹中
- 链接器找不到在虚拟类 c++ 中访问的静态字段的符号
- C++系统找不到指定的文件错误
- FindPackageHandleStandardArgs.cmake:137 的 CMake 错误(消息):找不到 Boost (缺少:正则表达式)(找到合适的版本"1.72.0",
- vcpkg 添加新库,但找不到
- Qt 5.11.2 (Clang 8.0 (Apple), 64 位), 找不到 QJSEngine 文件
- 找不到Linux Visual Studio代码C++文件