Python:ImportError:DLL loadfailed while importing onnxruntime_pybind11_state: 动态链接库(DLL)初始化例程失败 报错解决

简介: 在进行文件夹内人脸识别与对比聚类时,遇到onnxruntime库报错,通常因版本不兼容或环境冲突导致。本文整理了五种解决方案:降级onnxruntime至1.14.1、重装库、区分GPU/CPU版本、安装Visual C++运行库、创建Python虚拟环境。通过版本匹配与环境隔离,有效解决DLL初始化失败等问题,提升项目稳定性。

@TOC

项目场景:

在进行一个文件夹内人脸识别与对比聚类的功能时候,遇到这个错误,查询得知通常是由于 onnxruntime 库安装不正确或与你的系统环境不兼容导致的。具体可能对应到python与onnxruntime 的版本对应问题,但是目前也没有查询到完整的对应版本,整理了网上的资料,只能逐个试试以下方法来解决了

解决方案:

1、降级onnxruntime 为1.14.1 版本

执行以下代码:

pip uninstall onnxruntime
pip install onnxruntime-gpu==1.14.1

我最后是通过这个方法解决的报错,这边附上我的相关库的版本

库名称 版本号
onnxruntime-gpu 1.14.1
onnx 1.12.0
numpy 1.26.4
torch 2.5.1+cu121
tensorflow 2.10.0
opencv-python 4.11.0.86
pillow 10.2.0

2、卸载重新安装 onnxruntime

执行以下代码:

pip uninstall onnxruntime
pip install onnxruntime

3、检查是否存在GPU与CPU的版本冲突

卸载 GPU 和 CPU 版本避免冲突

pip uninstall onnxruntime -y
pip uninstall onnxruntime-gpu -y

清理 pip 缓存

pip cache purge

然后根据需要只装一个版本:
如果你要使用 GPU(CUDA 支持)

pip install onnxruntime-gpu==1.16.0

或者如果你只用 CPU

pip install onnxruntime==1.21.1

4、安装 Visual C++ 2019 可再发行组件包

可能是由DLL 初始化失败可能与系统运行时库缺失有关,尝试安装 Microsoft Visual C++ 2019 Redistributable:
从微软官网下载并安装以下链接:Visual C++ 2019
1.png

5、创建干净的新环境 并考虑python版本

怀疑onnxruntime库的报错问题与python环境版本相关,通过 Anaconda 的虚拟环境机制解决问题。原作者这里尝试使用python3.9.19版本

1、安装 Anaconda(如未安装):
从 Anaconda 官网 下载并安装适合操作系统的版本。Anaconda 官网

2、创建独立环境:
打开 Anaconda Prompt 或终端,执行以下命令创建指定 Python 版本的环境

conda create -n onnxruntime python=3.9.19

3、激活环境:

conda activate onnxruntime

4、安装 CPU 版 ONNX Runtime:

pip install onnxruntime
目录
相关文章
|
并行计算 Linux 计算机视觉
还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)
还在手工标注数据集?快来试一试自动化多模型标注大模型-gui交互式标注(部署运行教程-高效生产力)
|
Linux
一个进程最多可以创建多少个线程基本分析
一个进程最多可以创建多少个线程基本分析
919 1
|
数据采集 存储 数据可视化
四个常见的爬虫框架
【5月更文挑战第10天】本文介绍了四个常见的爬虫框架或库:Scrapy、PySpider、Crawley和Portia。Scrapy是一个强大、组件化的爬虫框架,支持异步请求和XPath数据提取。PySpider提供WebUI,便于脚本编写和结果查看,适合初学者。Crawley擅长高速爬取,支持多种数据库和数据导出格式。Portia是可视化工具,适合无编程经验的用户。此外,还有BeautifulSoup和Grab等工具可供选择。选择爬虫工具应考虑项目需求、开发者技能和工具特性。
741 0
|
4月前
|
文字识别 自然语言处理 Java
一键搞定人脸识别、语音识别、车牌识别本地化!离线跑模型不装框架!!!
SmartJavaAI 是专为 Java 开发者打造的离线 AI 工具箱,集成人脸识别、OCR、语音识别、机器翻译等 20+ 主流模型,基于 DJL + JNI 封装,支持 Maven 一键引入,两行代码调用,让 Java 工程师无需掌握 Python/C++ 即可轻松接入 AI 能力,高效落地各类智能场景。
439 1
|
3月前
|
人工智能 安全 API
身份证二、三要素实名认证API文档介绍
身份证二、三要素实名认证API,通过姓名、身份证号及头像比对权威数据源,快速核验用户身份真实性。广泛应用于金融、政务、电商等场景,助力企业合规运营,防范冒用身份等风险,保障账户安全与业务可信。
|
2月前
|
人工智能 搜索推荐 数据库
从零搭建RAG系统:原理剖析+代码实践,解锁大模型“记忆力”新姿势
RAG(检索增强生成)为大模型配备“外接大脑”,通过连接专属知识库,提升回答准确性。广泛应用于医疗、法律、客服等领域,兼具专业性与可解释性。本文详解其原理、实战步骤与优化技巧,助你快速构建个性化AI助手。
1019 11
|
3月前
|
监控 安全 机器人
钉钉通知
本文介绍如何通过Java代码调用钉钉机器人API实现系统告警消息实时推送。涵盖机器人创建、Webhook配置、Postman测试及Java代码封装,强调关键词匹配与限流规则,助力开发人员高效集成钉钉通知,提升系统监控响应能力。(238字)
562 0
|
12月前
|
人工智能 编解码 自动驾驶
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
RF-DETR是首个在COCO数据集上突破60 mAP的实时检测模型,结合Transformer架构与DINOv2主干网络,支持多分辨率灵活切换,为安防、自动驾驶等场景提供高精度实时检测方案。
2750 6
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
|
数据采集 JSON 网络协议
Python编程异步爬虫——aiohttp的使用
Python编程异步爬虫——aiohttp的使用
739 0
|
XML JSON 数据可视化
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)
本文详细介绍了不同数据集格式之间的转换方法,包括YOLO、VOC、COCO、JSON、TXT和PNG等格式,以及如何可视化验证数据集。
4401 1
数据集学习笔记(二): 转换不同类型的数据集用于模型训练(XML、VOC、YOLO、COCO、JSON、PNG)