PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )

(附加问题Cannot find existing PyQt5 plugin directories与This application failed to start becaise no Qt platform plugin could be initized的解决方案 ),因为不想再写一篇博客,就简单说一下,偷个懒,希望能帮到大家。

首先先上我的问题:PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第1张图片

在没打包发布前是没有任何问题的,打包成为EXE文件后,就出现这个情况了。从上面的提示可以看出程序是有一个模块找不到,可能各位出现了同样的情况,但缺少的模块可能是不一样的,但是这个解决方法都是一样,只需要把我们电脑中对应PYTHON中的这个模块部分复制到打包形成后EXE所在的目录下。具体的步骤如下:

1.打包发布成文件夹的形式,不要直接打包成为 一个单独的EXE文件,否则不利手动添加缺少的文件。

命令:pyinstaller -D -i win.ico main.py

其中win.ico:自己的图标文件

        main.py:程序的主程序入口

2.打包后会得到下面的文件夹,仔细看这个目录下是没有错误提示的那个cftime模块的,这就是错误的原因。

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第2张图片

3.复制缺少的模块文件夹,找到对应PYTHON下的这个模块,将这个模块文件夹复制到上面那个目录下。

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第3张图片

复制到

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第4张图片

此时运行这个目录下的EXE文件,就可以完美运行了。

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第5张图片

4.如果运行时出现控制台窗口,把控制台窗口去掉。

main.spec这个文件是在第一步的命令后自动生成的,可能你的这个文件名称和我的不一样,但后缀是一样的.spec,打开这个文件,把console=True,改为console=False,然后输入命令pyinstaller  main.spec。就会重新生成文件,把缺少的文件再重新放入EXE所在的目录,就可以去掉控制台窗口了。

 

附一、到此已经结束了,可能有人会问,虽然可以运行了,可是那么多的文件与文件夹,给别人用时不如一个EXE文件方便,这时可以再次打包,这个打包软件很多,我经常用的一个打包软件是下面这个

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第6张图片

通过这个软件就可以打包成为一个EXE了。效果如下:

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第7张图片

附二、另外再送一个问题的解决方案,问题是Cannot find existing PyQt5 plugin directories,如下:

就是找不到PyQt5的插件,一般情况下如果没打到会提示在哪个目录下没有找到,如下:

如果有提示在哪个目录找不到,恭喜你,这个把Qt目录下的plugins目录复制到上面提示的路径下就行了,没的这个路径自己创建也行,这个好解决,但是如果遇到上面那种找不到插件,并且还不给个提示的,那就不好办了,我的解决方法是PyQt5重新安装就行了,是电脑中PyQt5不完善发育导致的。

附三、另外再送一个问题的解决方案,如果运行打包发布好的Qt开发的程序,出现This application failed to start becaise no Qt platform plugin could be initized.......吧啦吧啦的,如下:

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第8张图片

这种原因,可能是你的系统变量中已经设置默认的Qt软件运行环境了,导致软件自身运行的环境叛变了,查看系统变量中有没有设置下面的变量,如有,就把这个变量删除掉。

PyQt5打包发布后出现闪退或缺少模块的解决方法(附加问题Cannot find existing PyQt5 plugin directories与This application failed )_第9张图片

删除后,再运行Qt开发的软件,就可以运行了。

你可能感兴趣的:(PyQt,Python,Qt,PyQt5,打包发布问题,闪退,缺少模块)