CentOS 7:libstdc++.so.6:未找到版本“CXXABI_1.3.9”

RTM*_*RTM 3 gcc centos pycharm anaconda tensorflow

我正在 CentOS 7 上使用 PyCharm 运行 python 脚本。该脚本导入 tensorflow 并为脚本分配一些 GPU 内存。

直到昨天,该脚本都运行良好,没有任何问题。我不确定为什么会这样。我在 CentOS 上运行以下版本的 gcc 和 libstdc++

>> rpm -qf /usr/lib/libstdc++.so.6
libstdc++-4.8.5-16.el7_4.1.i686

>> echo $LD_LIBRARY_PATH
/usr/local/lib64/:/usr/local/cuda-8.0/lib64:/usr/lib64/mpich/lib:/usr/local/cuda/lib64:/usr/local/cuda/extras/CUPTI/lib64

>> echo $LD_PRELOAD

blank output

>> hostnamectl

  Operating System: CentOS Linux 7 (Core)
       CPE OS Name: cpe:/o:centos:centos:7
            Kernel: Linux 3.10.0-693.2.2.el7.x86_64
      Architecture: x86-64
Run Code Online (Sandbox Code Playgroud)

我的 anaconda 环境中有 libgcc 7.2.0 版本。

解决此问题的一些堆栈流答案与 Ubuntu 系统有关,而不是 CentOS

我收到以下错误

from google.protobuf import descriptor as _descriptor
  File "/home/user_name/anaconda/envs/tokyo/lib/python3.6/site-packages/google/protobuf/descriptor.py", line 46, in <module>
    from google.protobuf.pyext import _message
ImportError: /lib64/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /home/rmulpuri/anaconda/envs/tokyo/lib/python3.6/site-packages/google/protobuf/pyext/_message.cpython-36m-x86_64-linux-gnu.so)
Run Code Online (Sandbox Code Playgroud)

小智 6

在 CentOS 7 上遇到 zmq 的类似问题,我想出了一个解决方法,因为全新的安装和环境没有帮助。

原来的问题是:

(mtango-py)$ python -c "import zmq"
  ...
  ImportError: /usr/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/me/opt/miniconda2/envs/mtango-py/lib/python3.5/site-packages/zmq/backend/cython/../../../../../libzmq.so.5.1.2)
Run Code Online (Sandbox Code Playgroud)

通过在 LD_PRELOAD 之前加载库:

(mtango-py)$ export LD_PRELOAD=$CONDA_PREFIX/lib/libstdc++.so
(mtango-py)$ python -c "import zmq"                          
(mtango-py)$
Run Code Online (Sandbox Code Playgroud)

这个答案并不能解决根本问题。如果系统不兼容,Conda 应该加载环境库。