Linux系统下解决 ImportError:‘GLIBCXX_3.4.21‘ not found 的错误

忙里偷闲,随便写写。

在代码运行的时候可能会出现一下错误:

ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /data10/gaoxl/install/anaconda3/envs/paddle37/lib/python3.7/site-packages/scipy/_lib/_uarray/_uarray.cpython-37m-x86_64-linux-gnu.so)

这是因为Linux系统中,glibc版本较低 ,那怎么解决这个问题呢?

1.首先你需要解决的一件事情是:“用户名不在sudoers中”的问题,这是一开始的拦路虎,因为你会发现,没有这个权限你将无法操作以下的步骤。那怎么解决“用户名不在sudoers中”的问题呢?方法是:

①在终端输入命令:su root    # 先切换到 root 用户

②继续输入命令:gedit /etc/sudoers  # 打开权限文件

③在跳出来的 /etc/sudoers 文件中找到Allow root to run any commands anywhere,在其下方添加命令:

root    ALL=(ALL)    ALL

zjl    ALL=(ALL)   ALL 

④保存退出 root 用户

这样,你就把自己的用户名写进了 sudoers

2.查找所有gcc动态库,找到anaconda,在终端输入命令:

find / -name "libstdc++.so*"

你会发现没有 GLIBCXX_3.4.21 在输出的结果中找到:

/home/zjl/anaconda3/lib/libstdc++.so.6
/home/zjl/anaconda3/lib/libstdc++.so.6.0.28
/home/zjl/anaconda3/lib/libstdc++.so

将上面的最新动态库libstdc++.so.6.0.28复制到/usr/lib64目录下: 

sudo cp /home/zjl/anaconda3/lib/libstdc++.so.6.0.28 /usr/lib64/

进入目录/usr/lib64 

cd /usr/lib64
ll | grep libstdc

备份,输入命令:

sudo mv libstdc++.so.6 libstdc++.so.6.bak

 创建新的软连接,指向刚拷贝的库:

sudo ln -s libstdc++.so.6.0.28 libstdc++.so.6

重新运行检查动态库的命令:

strings /usr/lib64/libstdc++.so.6 | grep GLIBC

 大功告成!!

注意:Linux如何建立和删除软连接呢?

建立:ln -s 源文件 目标文件

例如:ln -s libstdc++.so.6.0.28  libstdc++.so.6

删除:rm -rf 目标文件

例如:rm -rf  libstdc++.so.6

如果是:rm -rf 源文件/ 会把整个目录都删了

错误提示表明在安装飞浆模块后,发生了一个导入错误。具体错误是/lib64/libstdc.so.6库的版本不符合要求,需要GLIBCXX_3.4.20版本,但当前系统中没有找到这个版本的库。 为了解决这个问题,我们可以通过以下两个步骤来解决: 1. 首先,我们需要查看系统GLIBCXX的版本信息。可以使用命令行输入以下命令:`strings /usr/lib64/libstdc.so.6 | grep GLIBCXX`。这个命令会列出libstdc.so.6库中包含的GLIBCXX版本信息。 2. 其次,我们可以通过查看软连接来确认系统中libstdc.so.6指向的版本。使用命令行输入以下命令来查看软连接:`ls -l /usr/lib64/libstdc.so.6`。这个命令会显示libstdc.so.6的软连接信息,其中包括指向的具体版本文件。 根据以上信息,可以判断如果当前系统中没有GLIBCXX_3.4.20版本的库,那么可能需要更新或者安装新的版本。你可以尝试升级libstdc++库来满足飞浆模块对GLIBCXX_3.4.20版本的要求。具体的升级步骤可能因系统不同而有所差异,你可以根据自己的系统文档或者搜索引擎来查找相关的升级方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [libstdc++.so.6.0.25](https://download.csdn.net/download/qq_39619888/87474616)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [conda环境下“/lib64/libstdc++.so.6: version `GLIBCXX_3.4.20‘ not found”问题解决](https://blog.csdn.net/lsb2002/article/details/131456857)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值