项目场景:

很多情况下需要用很短的时间开发一款在windows上离线运行的小工具,以便解决一些现实问题。比如公司近期有个紧急项目,需要根据算法需求人工标注海量的地址信息,开发周期和工具易用性上都是有些挑战的,此时选择python开发是个明智的选择。 下面对python开发桌面应用工具的步骤做下总结。


开发环境准备

python开发我选择在Pycharm 上进行,新建工程,配置解释器及venv,这些跟普通的python项目开发一样。
安装PyQt5及PyQt5-tools:

pip3 install PyQt5
pip3 install PyQt5-tools

可以将PyUIC和Qt Designer两个工具添加到pycharm中,或者找到安装位置、直接命令行运行。


开发步骤:

  1. GUI开发
    打开PyQt Designer,根据需求确定好的GUI,在PyQt Designer上实现,并保存,文件保存格式为.ui。
    designer安装路径:

F:\Python36\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe

python react桌面程序 python开发桌面应用_python


2 . UI转换成python文件

python -m PyQt5.uic.pyuic mainWindow.ui -o mainWindow.py

3 . 开发业务功能
将上面转换好的gui python文件放入工程目录下,新建文件开发业务功能。

from lib.mainWindow import Ui_MainWindow
from PyQt5.Qt import *

class MyWindow(QMainWindow, Ui_MainWindow):

    def __init__(self, parent=None):
        super(MyWindow, self).__init__(parent)
        self.setupUi(self)
        # 一些信号槽事件
        self.actioncheck.triggered.connect(self.check)
        self.pushButton_start.clicked.connect(self.start)
    # 其它业务功能此处省略
if __name__ == '__main__':
    app = QApplication(sys.argv)
    show = MyWindow()
    show.show()
    sys.exit(app.exec_())

4 . 打包成exe

pyinstaller -w -F label_poi.py --windowed -p “G:\2020\POI查询\标注工具\poi\lib”

在打包过程中遇到问题:找不到PyQt相关的库,推测应该是pyinstaller对环境变量获取存在异常。解决办法在代码中加入环境变量:

import os
import sys
if hasattr(sys, 'frozen'):
    os.environ['PATH'] = sys._MEIPASS + ";" + os.environ['PATH']

软件可以正常打开,测试功能。

python react桌面程序 python开发桌面应用_python开发_02

小结:

该文档可作为python开发桌面小工具的模板流程,文中工具开发周期仅两天,基本满足功能需求。