Anaconda libstdc++.so.6:找不到版本“GLIBCXX_3.4.20”

问题描述 投票:0回答:11

我正在使用 anaconda for python,我面临这个问题,我尝试了很多方法来解决这个错误,但仍然没有解决。

到目前为止我使用了以下命令

sudo apt-get install libstdc++6
sudo add-apt-repository ppa:ubuntu-toolchain-r/test 
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

conda install libgcc

在此链接提供了解决方案,但我仍然不知道该怎么做

linux python-3.x anaconda jupyter-notebook spyder
11个回答
21
投票

我解决了这个问题

conda install libgcc=5.2.0

15
投票

这是因为你在升级gcc时有一些旧版本没有清理。

首先,请确保您拥有最新的库

conda install -c conda-forge libstdcxx-ng

  1. 使用
    find / -name "libstdc++.so*"
    查找所有库版本。我的最新版本是6.0.30。
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.29
/usr/lib/x86_64-linux-gnu/libstdc++.so.6.0
/usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so
/usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so.6.0.29
/usr/lib/gcc/x86_64-linux-gnu/9/libstdc++.so.6.0
/opt/conda/lib/libstdc++.so.6.0.29
/opt/conda/lib/libstdc++.so.6
/opt/conda/envs/xxx/lib/libstdc++.so.6.0.30
/opt/conda/envs/xxx/lib/libstdc++.so.6
/opt/conda/pkgs/libgcc-7.2.0-h69d50b8_2/lib/libstdc++.so.6.0.21
/opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so.6.0.30
/opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so.6
/opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so
  1. 将文件复制到您正在工作的文件夹中,并且只有旧版本。
    /opt/conda/lib/
    /opt/conda/envs/xxx/lib/

例如,我正在做

/opt/conda/lib/

cp /opt/conda/pkgs/libstdcxx-ng-12.1.0-ha89aaad_16/lib/libstdc++.so.6.0.30 /opt/conda/lib/
  1. 删除旧文件并链接最新的库。请对其他文件夹重复这些步骤。
cd /opt/conda/lib/
rm libstdc++.so.6.0.29
rm libstdc++.so.6.0
ln -s libstdc++.so.6.0.30 libstdc++.so.6

13
投票

对我有用的解决方案是:

conda install -c anaconda libstdcxx-ng


4
投票

我遇到了类似的问题。

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found 

我已经解决了。步骤如下:

try conda install -c anaconda libstdcxx-ng, // didn't work
try conda update libstdcxx-ng // didn't work too

但是当我执行命令:

locate libstdc++.so.6
时,发现了令人惊奇的东西,例如:/root/anaconda3/lib/libstdc++.so.6.0.26,它显然比.so.6.0更新。

我尝试:

strings /root/anaconda3/lib/libstdc++.so.6.0.26 | grep GLIBC
see [GLIBCXX_3.4.20][1]

这就是我要找的文件。

下一步:

ls -l  /root/anaconda3/lib/libstdc++.so.6.0.26
- 检查文件是否真实,而不是链接。

下一步:将 /root/anaconda3/lib/libstdc++.so.6.0.26 复制到 /lib64。

下一步:

ls -l /lib64/libstdc++.so.6
- 这是一个软链接,所以我可以放心删除它。

下一步:rm -rf /lib64/libstdc++.so.6

下一步:通过以下方式创建新的软链接: ln -s libstdc++.so.6.0.26 libstdc++.so.6

仅此而已。我运行我的代码没有错误。

愿神赐予我智慧,荣耀归于神!


3
投票

我遇到了同样的问题,就是当我运行

jupyter notebook
时,我得到了

ImportError: /home/cugtyt/software/miniconda3/lib/python3.6/site-packages/zmq/backend/cython/../../../../.././libstdc++.so.6: version `GLIBCXX_3.4.20' not found (required by /home/cugtyt/software/miniconda3/lib/python3.6/site-packages/zmq/backend/cython/../../../../../libzmq.so.5)

我通过这样做解决了这个问题:

conda uninstall gcc

希望可以帮到你!


1
投票

我使用 anaconda,以下命令对我有用:

conda install libgcc
export LD_LIBRARY_PATH=/path/to/anaconda/envs/myenv/lib:$LD_LIBRARY_PATH
cd /path/to/anaconda/envs/myenv/lib
ln -s libstdc++.so.6.0.30 libstdc++.so.6

您可以将

export LD_LIBRARY_PATH=/path/to/anaconda/envs/myenv/lib:$LD_LIBRARY_PATH
添加到 ~/.bashrc 文件中。


1
投票

Ubuntu 22.04 最初我的环境中有

libstdcxx-ng=11.2.0
。 然后我用
conda install -c conda-forge libstdcxx-ng
更新到更高版本,问题就解决了。


0
投票

因为

libgcc=5.2.0
无法从 conda 获得。 我是这样解决的:

conda uninstall cmake
pip install cmake

0
投票

重新安装 scipy 库自动为我纠正了错误。

conda install scipy

0
投票

我使用 mamba(比 conda 更快的替代品)

mamba install libgcc

比它有效。


0
投票

我在 Python 中的

import matplotlib
语句中收到此错误。无需再安装任何东西。发生此错误的原因是在路径上找不到此库。要修复它,请将其添加到 .bashrc 中:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CONDA_PREFIX/lib/
© www.soinside.com 2019 - 2024. All rights reserved.