QtDesigner安装+设计界面+转换成.py文件+pyinstaller安装+打包PyQt5项目

QtDesigner安装

首先安装anaconda,会自带PyQt5以及QtDesigner,配置QtDesigner到Pycharm

D:\Anaconda3\Library\bin\designer.exe          Program选中anaconda中的designer.exe程序

$ProjectFileDir$

QtDesigner界面设计

设计好界面后保存会生成一个xxx.ui的文件

在该文件的同级目录下打开命令行  ,输入python -m PyQt5.uic.pyuic xxx.ui -o xxx.py    即可将ui文件转换成对应的py文件

使用下面一段代码创建窗口,显示界面:

import sys
from excelutil import Ui_MainWindow
from PyQt5.QtWidgets import QApplication, QMainWindow

if __name__ == '__main__':
    app = QApplication(sys.argv)
    MainWindow = QMainWindow()        # 创建主窗口
    ui = Ui_MainWindow()              # 创建自定义ui界面

    ui.setupUi(MainWindow)            #将自定义ui界面设置到主窗口
    MainWindow.show()
    sys.exit(app.exec_())

pyinstaller安装

pip install pyinstaller

pyinstaller打包PyQt5项目

pyinstaller -Fw test.py

F表示打包成一个exe文件       w表示不弹出命令窗口

打包过程中遇到的一些坑:

1.报错

UnicodeDecodeError: 'utf-8' codec can't decode byte 0xce in position 110: invalid continuation byte

这个错误是因为windows的命令行窗口使用GBK编码,无法解码utf-8编码的文件

解决办法:在命令行敲chcp 65001     这个命令是将命令行转为utf-8编码

2.报错

这个错误是由于缺少dll文件导致的,按照网上方法尝试添加pyqt的环境的变量

没有成功,按照另一方法,将anaconda安装目录下的Library\plugins文件夹中的platforms文件夹,拷贝到打包好的exe文件同级目录下,问题解决。(我的目录是D:\Anaconda3\Library\plugins)

3.打包后的程序体积很大,导入了很多没用上的包

尝试过很多方法:

导入包时尽量使用 from *** import ***

使用anconda虚拟环境,未解决。这里很奇怪,我创建虚拟环境并激活虚拟环境后,没安装pyinstaller,但是依旧可以使用pyinstaller命令进行打包,貌似使用了默认的anconda环境。待研究...


版权声明:本文为cqf949544506原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。