【ONNXRuntime】python找不到指定的模块:onnxruntime\capi\onnxruntime_providers_shared.dll

问题:

使用源码推理的时候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打包通用流程 - 简书

感谢

由于以上的解决均不在本机,所以无法截图。

你可能感兴趣的:(python,windows,开发语言)