Python3.8+QT5对UI界面生成.exe文件

本文主要介绍在确保程序在编辑器中能够正常运行后,怎么生成.exe文件。

1. 下载pyinstaller

想要生成.exe就不得不提pyinstaller,这是一个专门用来生成.exe文件的包,下载方式也很简单,通过pip直接安装就可以。这里有两种方式:一种是使用pycharm下方的terminal通过输入pip install pyinstaller;另一种就是通过win+R调出命令窗口cd到目标文件夹,输入同样口令即可。

Python3.8+QT5对UI界面生成.exe文件_第1张图片

Python3.8+QT5对UI界面生成.exe文件_第2张图片

2. 进入目标程序所在目录

下载完成后就可以准备生成.exe文件了!是不是有点激动!别着急,本文是在UI界面已经编辑好且能成功运行的基础上展开介绍的,所有首先需要打开想要打包为exe程序的文件所在目录,如图所示:所有调用的子程序、主程序、Qt designer生成的ui文件以及界面用到的所有图标文件都要放到一个目录下,这个很重要!

Python3.8+QT5对UI界面生成.exe文件_第3张图片

3. 操作命令

由上面的图可以看出,构成一个界面程序不止一个,这时只需要找到主程序进行操作即可,我的主程序是runMain.py。到这里,准备工作已经就绪, pystaller可以通过简单的命令进行python代码的打包工作,输入命令需要定位到目标文件夹下,其基本的命令为:pyinstaller -option xxx.py。其中option为打包的参数,这里介绍两种常见的参数,分别为F和D。具体写法为:pyinstaller -F xxx.py; pyinstaller -D xxx.py; 具体含义为:

-F:仅生成一个可执行文件;

-D:生成一个文件目录包含可执行文件和相关动态链接库和资源文件等;

-w:表示生成的exe文件执行时去掉背景窗口;

Python3.8+QT5对UI界面生成.exe文件_第4张图片

4. 按需打包

两种方式我都试过,-F只生成一个exe文件,文件较大且运行速度慢,优点就是简洁;-D创建一个目录,包含exe文件,但会依赖很多文件,文件较小运行速度快,稳定性较好,缺点是依赖文件较多;对于结果较大的项目,选用生成目录相比单可执行文件的打包方式,执行速度更快,具体看个人需求。

 5. -w介绍

-w不建议在刚开始测试阶段使用,会影响具体报错信息的显示!直到最后生成的.exe文件能够成功运行,再去掉背景窗口!基本的命令为:pyinstaller -option -w xxx.py。

Python3.8+QT5对UI界面生成.exe文件_第5张图片

6. 命令运行结果

结果显示成功以后,在初始目标下文件夹会多出来以下4个文件夹,其中.exe文件在dist文件夹下,如果程序没有出错,双击该.exe文件,界面就会正常运行。

Python3.8+QT5对UI界面生成.exe文件_第6张图片

Python3.8+QT5对UI界面生成.exe文件_第7张图片

7. 过程中遇到的问题1

首先要确保程序在编辑器中能够正常运行,准备打包后要把程序关掉。我过程中遇到的问题就是:No such directory:’../yolo-obj/magnate.names’,遇到bug就赶快百度,查找了各种论坛,最终确认是数据文件导入方式的问题。在我原始的.py程序中使用了相对路径导入数据文件,导致生成.exe文件后会出现找不到原始路径的情况,也就会报下图这个错。如下面部分程序展示:被我加#部分就是原本相对路径的程序,后面改成绝对路径后这个问题就解决啦!!还有一点要格外注意,一定要检查所写的所有.py程序,所有调用的程序,主程序都要检查一遍!!!

Python3.8+QT5对UI界面生成.exe文件_第8张图片Python3.8+QT5对UI界面生成.exe文件_第9张图片 8. 过程中遇到的问题2

在win10系统开发的界面,如何在其他没有配置相关环境的计算机、其他系统如win7运行.exe。出现该问题的主要原因是缺少Qt platform运行环境。解决该问题只需要找到配置的PyQt5文件路径,复制路径D: \Anaconda\envs\tracker\Lib\site-packages\PyQt5\Qt(按自己当初下载的位置找)文件下的platforms文件夹到.exe所在文件夹中即可。

Python3.8+QT5对UI界面生成.exe文件_第10张图片

Python3.8+QT5对UI界面生成.exe文件_第11张图片 9. 生成专属图标

首先找到合适的图像(正方形,格式:jpg、jpeg、png),然后通过ico图标转换工具将图像转换成合适大小的ico文件,将生成的.ico图标保存到.py程序同一目录下。然后只需要在上述生成命令中加上一句即可:pyinstaller -D --icon=xxx.ico xxx.py。 

Python3.8+QT5对UI界面生成.exe文件_第12张图片

 

 

你可能感兴趣的:(qt,ui,python,pycharm,开发语言)