ImprotError:DLL load failed while importing QtCore:找不到指定的程序。问题解决

用pyqt5开发一个加密程序,在python环境中可以运行,但在发布的时候遇到标题的问题。项目程序如下:用python实现AES算法批量加密文件_耕读传家远的博客-CSDN博客。报错的图片如下:

但我之前一段时间刚刚发布过pyqt5的项目,没有报错的。 经过很长时间的尝试,发现只要引用Crypto.Cipher import AES这个模块的时候,再发布就会出问题。不引用这个加密模块,不会报这个错误。解决过程大致如下:

1.网上说的拷python3.dll到执行文件夹不行,因为本来就在里面。
2.用那个加解密独自做一个程序的,单独发出来,不用pyqt5,看一下行不行。
3.用加密模块自己做的软件,疑似也无法发布。下一步看一下,简单的,无解密的程序发布是什么效果。
4.用加密模块做出的软件,发布出来是可以的,只是他的控制台一闪而过,很快,所以看不出来。用录屏可以看到输出了正确的内容。
5.所有两个模块单独发布都没有问题,两个模块在一起发布的时候遇到问题。可以再发布一次,详细看一下发布时候的详细信息。
6.看到一个和Crypto非常相似的加密包:Cryptodome,我也不知道他俩啥关系,就安装了一下,结果可以运行。于是用这个包开发,结果还是报错。
7.试一下另一种引用方式,from PyQt5 import QtCore, QtGui, QtWidgets改成as,也是没用。
8.问了一下一个同学,把我的程序发给他,结果他那边可以发布,他用的发布命令是pyinstaller -w main.py –hidden-import PyQt5.sip比我用的多了几个参数。我把他发布的程序要过来,在我的电脑上也是可以运行的。
9.我也用pyinstaller -w main.py –hidden-import PyQt5.sip重新发布了一下,结果还是有这个错误。
10.详细对了我的发布包和他的发布包,发现我和他用的pyinstaller版本不同,他的更新。
11.于是更新了我的pyinstaller,发布成功。

12.再更新了pyinstaller之后,用pyinstaller -w main.py命令重新发布了一次,也没有报错。

所以最后,更新pyinstaller之后,问题解决。

但学会pyinstaller -w main.py –hidden-import PyQt5.sip,当出问题可以用一下。

物联沃分享整理
物联沃-IOTWORD物联网 » ImprotError:DLL load failed while importing QtCore:找不到指定的程序。问题解决

发表评论