【问题解决】ImportError: DLL load failed while importing QtXXX: 找不到指定的程序的一种可能性

问题描述:PyQt5出现 ImportError:DLL load failed while importing QtXXX,无论哪个模块都导入不进去。

软件环境:Python3.8.5(Anaconda虚拟,base:Python3.9)、PyQt5.15.7、Windows11。IDE:VScode

问题的发现来源于一次心血来潮,电脑上的Anaconda下一直有一个Pytorch1.7的虚拟环境,一直用来做深度学习相关也相安无事,某天突然下了一份labelimg的源码,用vscode导入工程后打开失败,开始报错,,如下图,开始了漫漫找问题的过程。

在此说下我试过的所有方法:
(1)根据此博客:我去官网重新下载了Python原版,替换Python3.dll,然而没效果。
(2)重新下载安装了N遍PyQt5和相关的软件包,也没效果。
(3)试了多次之后发现一篇博客说QT版本冲突,正巧Anaconda有些bug,环境搞的乱了,于是就把Anaconda重新安装了一遍,base环境为3.9,虚拟环境仍是3.8.5,和之前保持一致;重新配置了VScode,但是。。。还是没有效果,仍然报错。
于是,准备放弃了。。。。。。。。
这时候看到了另外一篇博客:点此阅览这篇博客的解决方法启发了一下我:
无
so。。。
此前一直没有考虑python动态库和C++动态库的调用问题,所有。。。必须祭出Dependencies看看这些pyd(python动态库)的背后藏着那些不可告人的秘密,于是:
【问题解决】ImportError: DLL load failed while importing QtXXX: 找不到指定的程序的一种可能性_第1张图片
乍一看没啥大问题,但是系统目录下的两个QT的动态库引起了我的警觉,上文说过我安装的PyQt版本是5.15.x.x,而且此次安装从来没有往C盘安装,这两个库,难道。。。,于是打开C盘一瞅,欸???
【问题解决】ImportError: DLL load failed while importing QtXXX: 找不到指定的程序的一种可能性_第2张图片
这是很久之前往C盘仍的QT5.10的动态库,工作需要。。。所以,版本肯定是对不上的,问题应该就出在了这个地方。于是我去Anaconda3\Lib\site-packages\PyQt5\Qt\bin\目录下把pip安装的dll全部复制到pyd所在目录(.\Anaconda3\Lib\site-packages\PyQt5),然后重新打开shell,import。。。。奇迹发生了。。。在这里插入图片描述
至此,一整个大无语,自己把自己坑了。
PS:这些Pyd统一还依赖着python3.dll,如果你的环境变量里没有包含此dll的目录,而且你根目录下也没python3.dll,还是需要加上这个dll的,不然还是起不来。

就这样。

你可能感兴趣的:(python,开发语言,qt5,计算机视觉)