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

本文涉及的产品
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 在进行文件夹内人脸识别与对比聚类时,遇到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交互式标注(部署运行教程-高效生产力)
|
数据采集 存储 数据可视化
四个常见的爬虫框架
【5月更文挑战第10天】本文介绍了四个常见的爬虫框架或库:Scrapy、PySpider、Crawley和Portia。Scrapy是一个强大、组件化的爬虫框架,支持异步请求和XPath数据提取。PySpider提供WebUI,便于脚本编写和结果查看,适合初学者。Crawley擅长高速爬取,支持多种数据库和数据导出格式。Portia是可视化工具,适合无编程经验的用户。此外,还有BeautifulSoup和Grab等工具可供选择。选择爬虫工具应考虑项目需求、开发者技能和工具特性。
807 0
|
8月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
5月前
|
Ubuntu Linux 测试技术
Linux系统离线安装Docker完整指南
本文详细介绍在Ubuntu 24等Linux系统中离线安装Docker的完整流程,适用于内网隔离环境。涵盖安装包下载、`docker.service`配置、安装与卸载脚本编写、权限设置、镜像测试及用户组配置,并包含docker-compose的离线部署方法,助力高效完成生产环境搭建。
7019 4
Linux系统离线安装Docker完整指南
|
4月前
|
缓存 文字识别 监控
Playwright处理验证码的自动化解决方案
验证码是自动化测试的常见难题。本文总结了Playwright处理验证码的五种实用方案:测试环境禁用、凭证缓存、OCR识别、智能重试及专项处理滑动/点选验证码,并提出分层策略与最佳实践,助你提升测试稳定性,兼顾效率与合规。
|
5月前
|
监控 安全 机器人
钉钉通知
本文介绍如何通过Java代码调用钉钉机器人API实现系统告警消息实时推送。涵盖机器人创建、Webhook配置、Postman测试及Java代码封装,强调关键词匹配与限流规则,助力开发人员高效集成钉钉通知,提升系统监控响应能力。(238字)
817 0
|
人工智能 编解码 自动驾驶
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
RF-DETR是首个在COCO数据集上突破60 mAP的实时检测模型,结合Transformer架构与DINOv2主干网络,支持多分辨率灵活切换,为安防、自动驾驶等场景提供高精度实时检测方案。
3214 6
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
25868 3
|
数据采集 JSON 网络协议
Python编程异步爬虫——aiohttp的使用
Python编程异步爬虫——aiohttp的使用
826 0
|
机器学习/深度学习 人工智能 算法
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
X-AnyLabeling是一款集成了多种深度学习算法的图像标注工具,支持图像和视频的多样化标注样式,适用于多种AI训练场景。本文将详细介绍X-AnyLabeling的功能、技术原理以及如何运行该工具。
3992 2
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景