ToB企服应用市场:ToB评测及商务社交产业平台

标题: 无root权限办理ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: v [打印本页]

作者: 笑看天下无敌手    时间: 2024-6-20 14:22
标题: 无root权限办理ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: v
一、题目描述

在利用实行室中的服务器中运行代码时,因libstdc++.so.6版本题目产生报错信息如下:
   ImportError: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.29' not found (required by /home/{用户名}/anaconda3/envs/torch/lib/python3.8/site-packages/matplotlib/_path.cpython-38-x86_64-linux-gnu.so)           
       ①使用下述命令查看/usr/lib/x86_64-linux-gnu/libstdc++.so.6对应的软毗连信息,发现其指向版本为6.0.25。
  1. cd /usr/lib/x86_64-linux-gnu/
  2. ls -l libstdc++.so*
复制代码
         
       ②使用下述命令查看libstdc++.so.6链接包罗的动态库,发现确实未包罗GLIBCXX_3.4.29:
  1. strings libstdc++.so.6 | grep GLIBCXX
复制代码
         
       查阅网上相干办理资料,发现办理方法大多需要将/usr/lib/x86_64-linux-gnu/libstdc++.so.6下对应的软毗连举行修改更换。但由于使用实行室的服务器时不具有root权限,无法举行更换,因此思量指定加载库的路径。
二、题目办理

①检查服务器中是否有包罗GLIBCXX_3.4.29的libstdc++.so.6版本(最好是自己用户名下)
  1. find /home/{自己用户名} -name libstdc++.so.6*
复制代码
注:这里find后面的路径一般是根据自己服务器中,用户文件地点路径举行修改,我的所有文件都在/home/{自己用户名}这个目录下
         
       发现两个版本,由于我这里使用torch情况,以是查看第二个动态链接库/home/{用户名}/anaconda3/envs/torch/lib/libstdc++.so.6中是否包罗GLIBCXX_3.4.29,输入命令:
  1. strings /home/{用户名}/anaconda3/envs/torch/lib/libstdc++.so.6 | grep GLIBCXX
复制代码
         
       ②指定加载库的路径
根据我们上面找到的路径:/home/{用户名}/anaconda3/envs/torch/lib/libstdc++.so.6。我们直接在终端中修改指定加载库的路径:
  1. export LD_LIBRARY_PATH=/home/{用户名}/anaconda3/envs/torch/lib
复制代码
  (批评区朋侪的补充~)这一步运行如果不行的话,可以在该条命令后加上LD_LIBRARY_PATH,即:
  1. export LD_LIBRARY_PATH=/home/{用户名}/anaconda3/envs/torch/lib:$LD_LIBRARY_PATH
复制代码
再次运行,发现题目办理,可以成功运行!

2023年12月11日补充 
到上面这一步实在就可以结束啦,下面是为了办理一个“一劳永逸的题目”,固然,大家如果觉得这一步较贫苦(固然我觉得不贫苦^-^),又不想每一次重启终端都输一下上面这条命令,也可以直接把export命令写入到自己的脚本里面,那每一次运行也是不需要自己单独再输入这条命令啦~
三、补充:重新启动终端无需重新输入命令

   在发布这篇文章后,批评区有好多朋侪都问“做法是不是一次性的”。我的回答是,运行完第二部门的内容,确实在重启终端后,确实要重新创建链接,即每一次打开终端都需要重新运行上述export命令
看到大家问有没有“一劳永逸”的方法,以是我也一直有在留意着~恰好近期实行室服务器更新需要重新配置,配置过程中我终于发现了一种方法可以办理“一次性”的题目,因此在这里举行更新,希望可以或许分享给大家。(也许会有更好的方法,也超级接待大家的补充~)
  这一部门的内容紧张为了能在重启终端后无需重新运行export命令
①编辑~/.bashrc文件
我的方法就是直接将其参加体系路径。首先在终端中输入下面的命令
  1. vim ~/.bashrc
复制代码

②参加体系路径
进入文件后把第二部门末了一条export命令写入这一位置。
  1. export LD_LIBRARY_PATH=/home/{用户名}/anaconda3/envs/torch/lib
复制代码

 ③更新配置文件
输入下述命令更新配置文件:
  1. source ~/.bashrc
复制代码

此时,当我们每次重新启动终端,就不需要每次都输入命令,也不会再报前面的错误了~


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4