【问题标题】:Anaconda ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not foundAnaconda ImportError:/usr/lib64/libstdc++.so.6:未找到版本“GLIBCXX_3.4.21”
【发布时间】:2020-02-13 22:09:35
【问题描述】:

当我尝试在 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 环境的 ligstdc++ 而不是 usr 目录中的那个?

【问题讨论】:

  • 你解决了吗?

标签: python c++ tensorflow anaconda


【解决方案1】:

降级到libgcc==5.2.0解决

最初,尝试使用 pip 安装,但如果出现错误:无法下载和编译 igraph 的 C 内核.. 通过 conda 安装它

【讨论】:

  • 版本不可用(squad) azada@scholar-fe00:~/Desktop/Toy-Problem-Team-2 $ conda search libgcc Loading channels: done # Name Version Build Channel libgcc 7.2.0 h69d50b8_2 pkgs/main
  • 试试这些命令: conda install -c conda-forge igraph python-igraph conda install -c vtraag leidenalg conda install libgcc==7.2.0
【解决方案2】:

运行此代码,您的问题应该得到解决,

conda install -c conda-forge gcc

【讨论】:

    猜你喜欢
    • 2015-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-05
    • 2018-07-05
    • 2022-10-08
    • 2011-07-10
    相关资源
    最近更新 更多