在我将pytorch打包后,到其他电脑上测试的时候碰见了此问题!
原因分类:
一、cuda版本错误:
如果打包之后,在打包的那台机器上也无法运行,且对应目录下已经存在了这个caffe2_nvrtc.dll文件,则可能是此问题。
1、命令行执行nvidia-smi查看cuda版本,根据显卡驱动选择与自身cuda对应的版本号
2、参考https://blog.csdn.net/qq_53357019/article/details/125725702 来安装cuda和对应版本的pytorch
3、再次打包进行测试
二、目标机器没有显卡驱动相关文件,造成某些dll缺失
打包后,在打包机器上可以运行exe ,但是在部分机器上报此错误时,则可能是此原因。
我使用的是多文件打包,这样方便补齐dll依赖。
1、若找到对应目录下不存在报错中对应的依赖caffe2_nvrtc.dll,在Anaconda配置环境的文件夹中搜索,一般情况可以找到,将其复制粘贴到对应目录下。
2、若存在,说明是缺少caffe2_nvrtc.dll的依赖项,使用Dependencies工具查看所需要的依赖项,后补齐到对应目录下。
Dependencies工具下载网站https://github.com/lucasg/Dependencies/releases 。可能加载较慢,因为服务器在外网。
下载红色的压缩包,解压缩。
执行DependenciesGui.exe,启动程序,把caffe2_nvrtc.dll直接拖拽进程序蓝绿色框区内。
显示情况如上图,如果缺少依赖,则会显示为红色标记,类似于:
这时候去能够运行成功的电脑上将这些文件拷贝到caffe2_nvrtc.dll所在的目录下。
如果缺少多个dll文件,一样是补齐就可以了,基本可以解决dll报错问题。
然后把补齐后的文件打成压缩包就可以了。如果重新打包,则需要手动复制粘贴加上dll文件。可以通过配置.spec文件来简化操作,自动打包。参考https://blog.csdn.net/chunzhi128/article/details/126349031 。
执行,成功!
Fight,win!