本文主要介绍在确保程序在编辑器中能够正常运行后,怎么生成.exe文件。
1. 下载pyinstaller
想要生成.exe就不得不提pyinstaller,这是一个专门用来生成.exe文件的包,下载方式也很简单,通过pip直接安装就可以。这里有两种方式:一种是使用pycharm下方的terminal通过输入pip install pyinstaller;另一种就是通过win+R调出命令窗口cd到目标文件夹,输入同样口令即可。
2. 进入目标程序所在目录
下载完成后就可以准备生成.exe文件了!是不是有点激动!别着急,本文是在UI界面已经编辑好且能成功运行的基础上展开介绍的,所有首先需要打开想要打包为exe程序的文件所在目录,如图所示:所有调用的子程序、主程序、Qt designer生成的ui文件以及界面用到的所有图标文件都要放到一个目录下,这个很重要!
3. 操作命令
由上面的图可以看出,构成一个界面程序不止一个,这时只需要找到主程序进行操作即可,我的主程序是runMain.py。到这里,准备工作已经就绪, pystaller可以通过简单的命令进行python代码的打包工作,输入命令需要定位到目标文件夹下,其基本的命令为:pyinstaller -option xxx.py。其中option为打包的参数,这里介绍两种常见的参数,分别为F和D。具体写法为:pyinstaller -F xxx.py; pyinstaller -D xxx.py; 具体含义为:
-F:仅生成一个可执行文件;
-D:生成一个文件目录包含可执行文件和相关动态链接库和资源文件等;
-w:表示生成的exe文件执行时去掉背景窗口;
4. 按需打包
两种方式我都试过,-F只生成一个exe文件,文件较大且运行速度慢,优点就是简洁;-D创建一个目录,包含exe文件,但会依赖很多文件,文件较小运行速度快,稳定性较好,缺点是依赖文件较多;对于结果较大的项目,选用生成目录相比单可执行文件的打包方式,执行速度更快,具体看个人需求。
?5.?-w介绍
-w不建议在刚开始测试阶段使用,会影响具体报错信息的显示!直到最后生成的.exe文件能够成功运行,再去掉背景窗口!基本的命令为:pyinstaller -option -w xxx.py。
6. 命令运行结果
结果显示成功以后,在初始目标下文件夹会多出来以下4个文件夹,其中.exe文件在dist文件夹下,如果程序没有出错,双击该.exe文件,界面就会正常运行。
7. 过程中遇到的问题1
首先要确保程序在编辑器中能够正常运行,准备打包后要把程序关掉。我过程中遇到的问题就是:No such directory:’../yolo-obj/magnate.names’,遇到bug就赶快百度,查找了各种论坛,最终确认是数据文件导入方式的问题。在我原始的.py程序中使用了相对路径导入数据文件,导致生成.exe文件后会出现找不到原始路径的情况,也就会报下图这个错。如下面部分程序展示:被我加#部分就是原本相对路径的程序,后面改成绝对路径后这个问题就解决啦!!还有一点要格外注意,一定要检查所写的所有.py程序,所有调用的程序,主程序都要检查一遍!!!
?8.?过程中遇到的问题2
在win10系统开发的界面,如何在其他没有配置相关环境的计算机、其他系统如win7运行.exe。出现该问题的主要原因是缺少Qt platform运行环境。解决该问题只需要找到配置的PyQt5文件路径,复制路径D: \Anaconda\envs\tracker\Lib\site-packages\PyQt5\Qt(按自己当初下载的位置找)文件下的platforms文件夹到.exe所在文件夹中即可。
?9. 生成专属图标
首先找到合适的图像(正方形,格式:jpg、jpeg、png),然后通过ico图标转换工具将图像转换成合适大小的ico文件,将生成的.ico图标保存到.py程序同一目录下。然后只需要在上述生成命令中加上一句即可:pyinstaller -D --icon=xxx.ico xxx.py。?
?
?
|