问题:
使用源码推理的时候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即可。
感谢
由于以上的解决均不在本机,所以无法截图。