pyinstaller库打包使用onnxruntime库出现Init provider bridge failed的报错的解决方案

问题描述:

用pyinstaller打包包含onnxruntime-gpu库时,执行exe文件调用模型时,在终端会出现如下的报错提示:

[W:onnxruntime:Default, onnxruntime_pybind_state.cc:1827 onnxruntime::python::CreateInferencePybindStateModule] Init provider bridge failed.

版本

windows11
cuda11.8
onnxruntime-gpu1.15

参考帖子

可能原因

pyinstaller库未能将所有需要的动态链接库打包。

解决方案:

找到onnxruntime-gpu的安装位置,可以在终端用该命令查看

pip show onnxruntime-gpu
Name: onnxruntime-gpu
Version: 1.15.0
......
Location: d:\ai\anaconda\anaconda\envs\yolov8\lib\site-packages

打开该路径中的onnxruntime/capi文件夹,将如下两个文件onnxruntime_providers_cuda.dllonnxruntime_providers_shared.dll复制
在这里插入图片描述

拷贝到你生成的可执行文件夹里的dist/main/_internal/onnxruntime/capi目录中

在这里插入图片描述
再次运行程序,完美解决


一些可能有用的链接
cuda和onnxruntime匹配版本


### 解决ONNX Runtime相关错误 #### 识别并处理`Init provider bridge failed` 当遇到`Init provider bridge failed`这一特定错误时,通常与PyInstaller打包过程中引入的第三方冲突有关[^5]。此问题主要发生在安装了某些特定版本的Python包之后,比如ddddocr。 为了有效解决该问题,建议采取以下措施: - **回滚到稳定状态**:尝试卸载最近安装可能引起冲突的新软件包(例如ddddocr),重新构建应用以验证是否解决了初始化失败的问题。 - **升级工具链**:确保使用PyInstaller处于最新版,开发者社区经常修复已知缺陷来提升兼容性和稳定性。 - **调整环境设置**:如果上述方法未能奏效,考虑创建独立虚拟环境中执行编译操作,隔离其他潜在干扰因素的影响。 对于更广泛的ONNX Runtime错误排查策略而言,保持良好的开发实践同样重要。这包括但不限于: - **确认依赖项一致性**:保证所有必要的动态链接(.dll)同可执行文件位于同一目录内能够减少许多加载阶段可能出现的技术难题[^3]。 - **遵循官方文档指导**:参照权威资料完成从源码编译至最终部署每一步骤的操作指南有助于规避因配置不当引发的一系列异常状况[^4]。 最后值得注意的是,在调试期间启用详细的日志记录功能可以帮助快速定位具体出错位置及其上下文信息,从而加速解决问题的速度。 ```cpp // 启用日志输出示例(C++) #include "onnxruntime_cxx_api.h" ... Ort::Env env(ORT_LOGGING_LEVEL_WARNING, "test"); ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值