| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 开发工具 -> Python3.8+QT5对UI界面生成.exe文件 -> 正文阅读 |
|
[开发工具]Python3.8+QT5对UI界面生成.exe文件 |
本文主要介绍在确保程序在编辑器中能够正常运行后,怎么生成.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。? ? ? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:07:52- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |