Windows平台搭建基于PyQt5.8.2开发Python GUI程序的环境(含打包过程)

Posted yanzi1225627

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows平台搭建基于PyQt5.8.2开发Python GUI程序的环境(含打包过程)相关的知识,希望对你有一定的参考价值。

简介

本文介绍Windows平台上使用PyQt开发Python GUI程序的开发环境配置.

安装python

官网下载python-3.5.3-amd64.exe,点击安装即可。

安装PyQt

目前PyQt最新版本为5.8.2版本,参考官网直接运行pip3 install PyQt5,安装成功后截图如下:

其中PyQt版本为5.8.2,sip版本4.19.2

测试demo:简单的登陆系统

#coding=utf-8
from PyQt5.QtWidgets import *
import sys

class LoginDlg(QDialog):
    def __init__(self, parent=None):
        super(LoginDlg, self).__init__(parent)
        usr = QLabel("用户:")
        pwd = QLabel("密码:")
        self.usrLineEdit = QLineEdit()
        self.pwdLineEdit = QLineEdit()
        self.pwdLineEdit.setEchoMode(QLineEdit.Password)

        gridLayout = QGridLayout()
        gridLayout.addWidget(usr, 0, 0, 1, 1)
        gridLayout.addWidget(pwd, 1, 0, 1, 1)
        gridLayout.addWidget(self.usrLineEdit, 0, 1, 1, 3);
        gridLayout.addWidget(self.pwdLineEdit, 1, 1, 1, 3);

        okBtn = QPushButton("确定")
        cancelBtn = QPushButton("取消")
        btnLayout = QHBoxLayout()

        btnLayout.setSpacing(60)
        btnLayout.addWidget(okBtn)
        btnLayout.addWidget(cancelBtn)

        dlgLayout = QVBoxLayout()
        dlgLayout.setContentsMargins(40, 40, 40, 40)
        dlgLayout.addLayout(gridLayout)
        dlgLayout.addStretch(40)
        dlgLayout.addLayout(btnLayout)

        self.setLayout(dlgLayout)
        okBtn.clicked.connect(self.accept)
        cancelBtn.clicked.connect(self.reject)
        self.setWindowTitle("登录")
        self.resize(300, 200)

    def accept(self):
        if self.usrLineEdit.text().strip() == "eric" and self.pwdLineEdit.text() == "eric":
            super(LoginDlg, self).accept()
        else:
            QMessageBox.warning(self,
                    "警告",
                    "用户名或密码错误!",
                    QMessageBox.Yes)
            self.usrLineEdit.setFocus()

app = QApplication(sys.argv)
dlg = LoginDlg()
dlg.show()
dlg.exec_()
app.exit()

上述代码执行脚本可以看到运行效果:

安装PyWin32

Python是没有自带访问windows系统API的库的,需要下载。库的名称叫pywin32,可以从网上直接下载。我电脑是64位的则要安装64位的pywin32,直接在https://sourceforge.net/projects/pywin32/files%2Fpywin32/根据笔记本位数及python版本号下载即可,我下载的是pywin32-220.win-amd64-py3.5.exe.下载后双击安装即可.

安装pyinstaller

官网,截图如下:

上面写的很清楚,支持python2.7-3.5版本,所以用python的话3.5就可以,3.6太新的不要用。
执行pip install pyinstaller安装即可.如果是离线安装,解压后进到对应目录python setup.py install.
注意:如果采用离线安装,需要离线安装future,下载后运行脚本python setup.py install

打包

pyinstaller的基础命令是:pyinstaller -F -w ****.py,但是会报错:

pyinstaller failed to execute script pyi_rth_qt5plugins

我们需要将命令换为:

D:\\work\\workspaces\\python\\Test>pyinstaller -p C:\\Users\\Administrator\\AppD
al\\Programs\\Python\\Python35\\Lib\\site-packages\\PyQt5\\Qt\\bin -F -w Test.py

使用-p参数加上PyQt5的绝对路径即可,之后就可以了。还可以加-i后面带上icon的图标。
经测试一个简单的登录系统三十来行代码打包出的exe大小为16.9M,所耗内存也是16M。生成的exe文件下载链接为PyQt登录界面,大家感兴趣可以在windows64位平台进行测试。

以上是关于Windows平台搭建基于PyQt5.8.2开发Python GUI程序的环境(含打包过程)的主要内容,如果未能解决你的问题,请参考以下文章

基于Prometheus+Grafana搭建监控平台(Windows/Linux环境exporter部署)

基于Prometheus+Grafana搭建监控平台(Windows/Linux环境exporter部署)

基于eclipse-java的平台上搭建安卓开发环境

windows平台下基于QT和OpenCV搭建图像处理平台

pyqt5.8.2没有qt Designer和assistant exe

搭建Genymotion模拟器基于windows平台&mac平台