PyQt5的ImportError: DLL load failed问题解决

网络上很多说是虚拟环境问题,是同时装了Python2和Python3的问题。其实这些大部分都不解决问题。因为这个现象的发生不是不能import任意的库,而是无法加载DLL库。

探究真实原因

首先排查是否为虚拟环境问题,既然那么多帖子都在说这个问题。打开Windows命令行,输入pip --version 后面就跟了它的目录位置,一般结尾为\Lib\site-packages\pip,而前面的路径就是你的Python的安装路径(from之后 )。如果你是在虚拟环境打开的,它会在虚拟环境的目录下,只有这样才能实现pip安装的库只装进虚拟环境不装进Python默认目录。因为pip是外源库,所以安装在它的\Lib\site-packages\子目录下。右键全选,再按Enter键,打开记事本,再把命令行的所有文本粘贴过去,将该路径复制,再打开资源管理器,在地址栏粘贴,Enter,即进入了python的pip库目录。

pip路径在文件管理器查看
注意两点,其一是里面有__init__.py 文件,其二是我在地址栏正要点击site-packages即它的上一级目录。点击之后,在该目录下可以发现一系列安装在Python默认环境的外源库,包括PyQt5.点击进去,发现除了__init__.py 文件之外,还有一些奇怪的pyd文件。
PyQt5目录的pyd文件

其实问题就在这里。并不是所有的库都无法加载,而是以pyd结尾的库无法加载。接着在命令行检查如下:

python
import PyQt5
PyQt5.__file__
from PyQt5 import QtCore

很明显,直到最后一个命令之前,都是正常运行的,而且PyQt5.__file__很直接的报出了在资源浏览器打开的PyQt5目录下的__init__.py文件。所以问题已经很清楚了,就是仅PyQt5的pyd文件无法加载,而且报错是DLL load failed。这些pyd文件就是Python的DLL文件,为何无法加载呢?

解决方法

这是因为PyQt5的很多版本都是基于高版本的Visual C++,即PyQt5 实际上依赖于Visual C++ 2015-2019,这些pyd文件本质是Visual C++ 2015-2019的动态库,需要用它执行。 将其下载并安装即可。如果安装不上,需要安装KB2999226的补丁包。安装成功之后,重启,问题解决。

评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值