你需要知道的具有Qt界面的文件Pyinstaller打包成EXE的一些感悟

简介: 你需要知道的具有Qt界面的文件Pyinstaller打包成EXE的一些感悟

这里 提供一个用于测试Pyinstaller安装是否有问题的一个小程序


之前在做项目需要将.Py文件打包成exe送到甲方手里


之间遇到了很多很多很多的问题


下面总结一下:


首先安装Pyinstaller,感觉好像没有其他网友所说的那些存在的版本问题。


直接在PyCharm的Terminal下输入安装命令,没毛病。

pip install pyinstaller

我是在Anaconda的环境下进行打包处理的,打包出来的文件稍微有些大,但很有效

直接的,

Terminal下运行此命令:

pyinstaller -w 目标文件.py

然后再运行下指令进行Debug:

pyinstaller -D 目标文件.py

我觉的这样打包是最好的选择。

对上述指令进行解释,

-w 代表将把文件打包成多文件格式exe,如下图,简而言之,把文件环境打包到目标文件夹里而不是一个集成的exe文件中,且运行exe不会出现命令行大黑框。

image.png

-D 代表将文件打包默认值,生成dist文件夹,其中dist中包含一个main文件夹,整个文件内容及其环境就包含在main文件夹中。且可将exe在cmd运行,如有问题可显示问题所在,这样很友好,看到问题后可简单粗暴的解决问题所在。


打包完成后,在cmd上运行dist->main->.exe文件


将文件路径更改到目标exe文件下


cd C:\Users\Administrator\Desktop\Natural_gas_market\stock_app_v5.0\dist\main

image.png

简单粗暴的把.exe拖到大黑框中运行

image.png

注意:上图的main.exe有图标是应用了下面语句

-i 目标图标.ico

将上面加在pyinstaller指令后面即可

pyinstaller -w -i 目标图标.ico 目标文件.py

接上cmd运行**.exe**后

不出意外时会出现错误的

image.png

我出现的问题时缺少mini_racer.dll,也就是缺环境插件,直接把它找到,然后添加到文件夹内即可。

但是,

再次运行**.exe**你会发现

肯定不会只差这一个插件的,不出意外还好缺少一些第三方库

此时,需要你将整个缺失的包添加main文件夹


相关文章
基于QT实现的拷贝文件以及实时进度条(简易版)
1.基于按钮或者菜单栏的槽里去写逻辑函数(我这边用的是菜单栏),ui实现的进度条 2.创建两个对象,一个是源文件,一个是目标文件分别用getopenfileName、getsavefileName函数即可。 3.利用QFile类去实现对两个文件的创建,因为QFile中可以获取文件的属性已经读写等。 4.循环的去读取源文件中的数据,然后写入目标文件
1060 6
【qt】如何读取文件并拆分信息?
【qt】如何读取文件并拆分信息?
169 0
|
监控 C++ 容器
【qt】MDI多文档界面开发
【qt】MDI多文档界面开发
532 0
|
编译器
【项目开发】QT简单练习之QQ登录界面模仿
为了进一步加深对QT开发的理解,在学习完基础操作之后要进行一个简单的练习。
250 1
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
【Qt 学习笔记】Qt窗口 | 标准对话框 | 文件对话框QFileDialog
2936 4
|
XML 开发框架 API
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
【Qt 学习笔记】QWidget的windowTitle属性 | windowIcon属性 | qrc文件机制
790 1
QT 软件打包为一个单独可执行.exe文件流程
QT 软件打包为一个单独可执行.exe文件流程
1882 0
QT6使用CMamke将qml打包成dll
QT6使用CMamke将qml打包成dll
398 0
Qt6.5打包(QT windeployqt不是内部或外部命令、QT错误:缺少libgcc_s_seh-1.dll ,无法正常启动(0xc000007b) 问题解决方法)
Qt6.5打包(QT windeployqt不是内部或外部命令、QT错误:缺少libgcc_s_seh-1.dll ,无法正常启动(0xc000007b) 问题解决方法)
1440 1
Qt颜色、文件、字体对话框
Qt颜色、文件、字体对话框
102 1