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交互式标注(部署运行教程-高效生产力)
|
算法 数据库 计算机视觉
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
Dataset之COCO数据集:COCO数据集的简介、下载、使用方法之详细攻略
|
9月前
|
JavaScript 前端开发 安全
【逆向】Python 调用 JS 代码实战:使用 pyexecjs 与 Node.js 无缝衔接
本文介绍了如何使用 Python 的轻量级库 `pyexecjs` 调用 JavaScript 代码,并结合 Node.js 实现完整的执行流程。内容涵盖环境搭建、基本使用、常见问题解决方案及爬虫逆向分析中的实战技巧,帮助开发者在 Python 中高效处理 JS 逻辑。
|
4月前
|
缓存 Rust JavaScript
更快、更安全、更现代:用 uvx 替代 npx 执行临时 CLI 工具
`uvx` 是超快、安全、跨语言的 CLI 工具运行器(来自 Rust 编写的 `uv`),支持 Python/Node.js/Rust/Go 等生态,无需预装环境,自动隔离缓存,速度比 `npx` 快 3–5 倍,真正实现“Just run it”。
1035 1
|
4月前
|
缓存 Rust 开发者
UV详解:替代pip、conda的下一代Python包与环境管理工具
UV是Astral团队推出的Rust编写的高性能Python包管理工具,旨在解决pip与conda在速度、功能割裂、环境不一致和资源冗余等方面的痛点。它集包安装、虚拟环境、依赖锁定、Python版本管理、脚本运行及打包发布于一体,兼容现有生态,安装速度快10–100倍,轻量高效,适合纯Python项目开发与团队协作。(239字)
1904 8
|
人工智能 编解码 自动驾驶
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
RF-DETR是首个在COCO数据集上突破60 mAP的实时检测模型,结合Transformer架构与DINOv2主干网络,支持多分辨率灵活切换,为安防、自动驾驶等场景提供高精度实时检测方案。
3559 6
RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!
|
XML 机器学习/深度学习 数据格式
YOLOv8训练自己的数据集+常用传参说明
YOLOv8训练自己的数据集+常用传参说明
27104 3
|
机器学习/深度学习 人工智能 算法
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
X-AnyLabeling是一款集成了多种深度学习算法的图像标注工具,支持图像和视频的多样化标注样式,适用于多种AI训练场景。本文将详细介绍X-AnyLabeling的功能、技术原理以及如何运行该工具。
4323 2
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
|
数据采集 JSON 网络协议
Python编程异步爬虫——aiohttp的使用
Python编程异步爬虫——aiohttp的使用
880 0
|
机器学习/深度学习 PyTorch 算法框架/工具