问题:
使用源码推理的时候onnruntime 能够使用cuda,但是使用pyinstaller导出包之后,推理就会出现找不到 onnxruntime\capi\onnxruntime_providers_shared.dll错误。
原因:原因就是运行的时候没有找到动态链接库呗。
解决方法:
在使用pyinstaller 导包之后,会在同级文件夹下生成对应的后缀为.spec的文件。如我们编译main.py。使用pyinstaller -F -w main.py 会在main.py同级目录下生成main.spec。
据此 我们修改main.spec 文件,解决方法就在此中。
1 首先找到对应的dll文件在哪,我的是在python\python38\Lib\site-packages\onnxruntime\capi\下。
2 找到 a = Analysis 里面的 binaries。添加
binaries=[(r'***\python\python38\Lib\site-packages\onnxruntime\capi','onnxruntime\capi')]
前面一个参数是源dll 的路径,后面的是报错没找到dll的路径
3 重新编译,但不是执行 pyinstaller -F -w main.py 。而是执行pyinstaller main.spec即可。
多亏有两个参考:【ONNXRuntime】python找不到指定的模块:onnxruntime\capi\onnxruntime_providers_shared.dll_failed to load library libonnxruntime_providers_sh_there2belief的博客-CSDN博客
Pyinstaller打包通用流程 - 简书
感谢文章来源:https://www.toymoban.com/news/detail-549872.html
由于以上的解决均不在本机,所以无法截图。文章来源地址https://www.toymoban.com/news/detail-549872.html
到了这里,关于【ONNXRuntime】python找不到指定的模块:onnxruntime\capi\onnxruntime_providers_shared.dll的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!