在 conda 虚拟环境中找不到 librosa 的“GLIBCXX_3.4.30”(尝试了很多解决方案后)?

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

我正在尝试

import librosa
,但我遇到了这个错误:

/home/lakshya/anaconda3/envs/tff_env/lib/python3.9/site-packages/zmq/backend/cython/../../../../.././libstdc++.so.6: version `GLIBCXX_3.4.30' not found (required by /home/lakshya/anaconda3/envs/tff_env/lib/python3.9/site-packages/scipy/fft/_pocketfft/pypocketfft.cpython-39-x86_64-linux-gnu.so)

我根据我浏览过的其他类似问题尝试了以下方法来修复它:

  1. sudo apt-get install libstdc++6

    它的输出: libstdc++6 已经是最新版本(10.2.1-6)。

  2. sudo apt-get dist-upgrade

    输出:0 个已升级,0 个新安装,0 个要删除,0 个未升级。

  3. strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX

    输出:GLIBCXX 版本高达 GLIBCXX_3.4.28

  4. conda install libgcc
    在我的虚拟环境“tff_env”中

    它的输出:libgcc-7.2.0安装在tff_env中

  5. Pip 也在虚拟环境中安装了 libgcc 包。没成功。

我能做什么?

我的操作系统:Debian GNU/Linux 11(牛眼)

linux anaconda librosa
10个回答
70
投票

刚刚解决了类似的问题,看来您需要确保您拥有最新版本的 gcc。跑步:

conda install -c conda-forge gcc=12.1.0

为我修正了错误。


31
投票

在搜索 anaconda 软件包后,我发现只有软件包“libstdcxx”会实质上将新的“libstdc++.so.6”文件引入 conda 环境(而“gcc”、“gcc_linux-64”和“libgcc-ng”)不能)。 因此,安装以下软件包可以为我解决这个问题。

conda install -c conda-forge libstdcxx-ng=12

PS:dfcorbin的答案

conda install -c conda-forge gcc=12
不适合我。


15
投票

不幸的是,以上答案都不适合我。我最终做的是手动检查

libstdc++.so.6
文件。

首先,我检查了系统文件,它没有返回任何内容:

strings /usr/lib/x86_64-linux-gnu/libstdc++.so.6 | grep GLIBCXX_3.4.30

然后,我查看了 conda 文件,它就在那里:

strings /path-to-your-conda/envs/your-env-name/lib/libstdc++.so.6 | grep GLIBCXX_3.4.30

这表明简单的解决方案是将 conda 文件的路径附加到 LD_LIBRARY_PATH。

export LD_LIBRARY_PATH=/path-to-your-conda/envs/your-env-name/lib:$LD_LIBRARY_PATH


14
投票

如果接受的答案不起作用,请尝试此

我的条件与原始海报相同,并且接受的答案不起作用,因为

conda
需要很长时间。我尝试将版本从
scipy
降到
1.9.3
1.9.1
,它确实有效。

您可以使用以下命令来执行此操作:

conda install -c anaconda scipy==1.9.1 

8
投票

尝试运行 mujoco 或 mujoco-py 时解决此问题的一个解决方案如下

操作系统错误:/home/ubuntu/anaconda3/envs/tensorflow_p36/bin/../lib/libstdc++.so.6:启动 ipython 时未找到版本“GLIBCXX_3.4.20”。由于某种原因,这个库不在 anaconda 环境 libstdc++.so.6。它在ubuntu的基础上 图书馆。因此,将此库的 anaconda 版本链接回操作系统 版本:

cd /home/ubuntu/anaconda3/envs/tensorflow_p36/lib
mv libstdc++.so.6 libstdc++.so.6.old
ln -s /usr/lib/x86_64-linux-gnu/libstdc++.so.6 libstdc++.so.6

学分:https://bcourses.berkeley.edu/courses/1478831/pages/glibcxx-missing


2
投票

所以对我有用的是手动删除我使用

make altinstall
安装的Python3.10并将scipy升级到最新版本。


1
投票

其他答案都不适合我。但这确实有效:

pip install scikit-build

0
投票

上面给出的解决方案对我不起作用。我通过将 scipy 从 1.9.1 降级到 1.6.1 来让它工作。


0
投票

在某些情况下,存在多个 glibcxx 和运行时安装,您的应用程序想要连接到它,但发现库位于错误的位置。可以通过改变导入库的顺序来解决。通过在运行脚本之上导入 librosa 解决了该问题。


0
投票

其他答案都不适合我,但这解决了问题:

import torch

该行要添加到文件顶部。

© www.soinside.com 2019 - 2024. All rights reserved.