ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory

问题描述

        今天在环境迁移的时候遇到了这样一个报错内容ImportError: libcudnn.so.8: cannot open shared object file: No such file or directory,在本机跑的时候是没出现这样情况的,那为什么在这里出现了呢?看报错内容应该是少了什么文件,把这个文件加上去就可以了。

原因分析

        看这个名字的话好像是和什么库文件有关,而lib后面又是cudnn(nvidia加速计算库),再联系到之前服务器安装cuda的时候并没有配置该库文件,所以是这个错误无疑了。

        而在冲浪的时候发现了这样一个帖子,更证明了我的推断。ImportError: libcudnn.so.8: cannot open shared object file: No such file or directoryicon-default.png?t=N7T8https://blog.csdn.net/weixin_41012399/article/details/119350929

        不美的是,这个作者并没有给出这个下载的cudnn文件,还得自己下载,而我也老是忘自己的密码,所以浪费很多时间来搞定这个问题,为了不让后面的人少走些弯路,在这里给出全套的操作和资源包。

解决方案

        首先,需要将安装的cuda版本对应的包路径软链接到cuda上,具体操作以下代码:

sudo ln -s /usr/local/cuda-11.6 /usr/local/cuda

        有的博客中会让先执行这条命令:sudo rm -rf cuda,千万不要,个人经验,这条命令是用来删除本来的cuda文件夹的,如果对系统文件以及前人都做了些什么操作,千万不要随意的rm(删除),这个是个非常严重的事情,万一崩了后果不堪设想!

        接下来就是从官网下载相对应的cudnn版本,具体对应关系可以查看我之前的一篇博客:conda安装和cudnn安装的建议---能用命令行解决的事不要费劲下载icon-default.png?t=N7T8https://blog.csdn.net/BetrayFree/article/details/132103375

        我的系统信息如下:系统ubuntu20.04,cuda11.6,所以如果和我一样的可以从下面这个链接直接获取cudnn的tar.xz包:链接: https://pan.baidu.com/s/1t_e01svu46kn-56nwVHXRQ?pwd=bbqq
        下载完成后,用scp命令上传到服务器:

scp -r cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar.xz user@ip:destination folder

        而后把这个压缩文件解压,需要注意的是J是大写:

tar xvJf cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar.xz

        ok,需要注意的重头戏来了,我们上面分析过,是因为缺少库文件,那把库文件加上就可以了,回看cudnn的安装有很多种,包括且不限于deb安装和解压缩并且移动到cuda对应的目录下,在这里我们采用第二种:把inculde和lib(注意不是lib64)里的文件复制到cuda中:

sudo cp include/cudnn.h /usr/local/cuda/include

sudo cp lib/libcudnn* /usr/local/cuda/lib64

sudo chmod a+r /usr/local/cuda/include/cudnn.h /usr/local/cuda/lib64/libcudnn*

         其中最后一步的作用是给所有用户添加可读的权限,否则可能程序识别不到。具体权限相关请查看chmod命令的用法-CSDN博客chmod a+r *:用户自己使用此命令,可给所有用户添加可读的权限超级用户给其他用户设置权限:sudo chmod a+rx /home/user 使所有人可以访问,读取文件,bu no Write指令名称 : chmod使用权限 : 所有使用者使用方式 : chmod [-cfvR] [–help] [–version] mode file…说明 : Linux/Unix 的档...https://blog.csdn.net/fengxiwutong369/article/details/87928158

完结撒花

        解决完了这个东西,记一些随笔下来:

        压缩文件目录到指定的压缩文件名称:

tar -zcvf Clip-Vit.tar.gz clip-vit-large-patch14/

or

tar -zcvf VIT.tar.gz /home/visionx/.cache/huggingface/hub/models--openai--clip-vit-large-patch14

        二者不同之处在于,第一条需要在本文件目录下方可,而第二条在任意目录下均可以,毕竟是完整目录,但是解压的时候第二个也是解压的完整路径,所以会麻烦一些。

        解压缩tar.gz:

tar -zxvf VIT.tar.gz

        其中-后面的每个字母都有具体意义:选项 z,通过gzip压缩或解压;选项 x,解压tar包;选项 c,表示创建新的tar包;选项 v,表示显示详细tar执行过程;选项 f,指定压缩的文件名字;选项 t,不解压查看tar包的内容;选项 p,表示保持文件的原有属性;选项 j,通过bzip2命令压缩或解压;选项 z,通过gzip压缩或解压;选项 x,解压tar包;选项 C(大写),指定解压的目录路径。

        具体的可以查看这个Linux打包命令之tar详解icon-default.png?t=N7T8https://zhuanlan.zhihu.com/p/447604518        不过要是解压tar.xz则要用:

tar xvJf cudnn-linux-x86_64-8.8.0.121_cuda11-archive.tar.xz

        这是很不同的一点。

        除了压缩和解压,最近还用到了统计目录和文件个数的命令:

        1、统计当前目录下文件的个数(不包括目录)

ls -l | grep "^-" | wc -l

         2、统计当前目录下文件的个数(包括子目录)

ls -lR| grep "^-" | wc -l

        3、查看某目录下文件夹(目录)的个数(包括子目录)

ls -lR | grep "^d" | wc -l

        4、统计当前文件夹下叫某某的文件的数量

find . -name filename | wc -l

        5、统计当前文件夹下指定类型的文件的数量        

find -name "*.js" | wc -l

        具体参考Linux 统计目录下文件数量的方法icon-default.png?t=N7T8https://blog.csdn.net/zenglongjian/article/details/129975294        ok,最近的学习成果汇报结束,希望各位老师批评指正。

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
运行时报错"OSError: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory"是因为系统无法找到libtorch_cuda_cu.so共享对象文件。这个文件是libtorch库的一部分,用于支持CUDA加速。出现这个错误的原因可能是缺少或者未正确配置libtorch库。 解决这个问题的方法有几种: 1. 首先,你需要确认libtorch_cuda_cu.so文件是否存在。你可以在系统中搜索这个文件,看看它是否存在。如果不存在,你可能需要重新安装或者更新libtorch库,确保它包含了这个文件。 2. 如果文件存在,你需要确保系统能够正确找到它。你可以尝试添加libtorch所在的路径到LD_LIBRARY_PATH环境变量中,这样系统就能够找到共享对象文件。可以使用以下命令来设置环境变量: ``` export LD_LIBRARY_PATH=/path/to/libtorch:$LD_LIBRARY_PATH ``` 其中"/path/to/libtorch"应该替换为你的libtorch库所在的路径。 3. 另外,你还可以尝试使用ldconfig命令来更新共享对象文件的缓存,以确保系统能够正确找到libtorch_cuda_cu.so文件。可以使用以下命令: ``` sudo ldconfig ``` 这个命令会检查并更新系统的共享对象文件缓存。 总结起来,你可以通过确认文件是否存在、设置LD_LIBRARY_PATH环境变量以及使用ldconfig命令来解决"OSError: libtorch_cuda_cu.so: cannot open shared object file: No such file or directory"这个报错。根据你的具体情况选择相应的解决方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [libtorch_cuda_cu.so: cannot open shared object file](https://blog.csdn.net/wudi_cn/article/details/126737202)[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: 33.333333333333336%"] - *2* [[MMSegmentation] ImportError: libtorch_cuda_cu.so: cannot open shared object file: ...解决](https://blog.csdn.net/weixin_44899883/article/details/119912025)[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: 33.333333333333336%"] - *3* [cuda报错 OSError: libcudart.so.10.0: cannot open shared object file: No such file](https://download.csdn.net/download/weixin_38590520/14052329)[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: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值