项目场景:
很多情况下需要用很短的时间开发一款在windows上离线运行的小工具,以便解决一些现实问题。比如公司近期有个紧急项目,需要根据算法需求人工标注海量的地址信息,开发周期和工具易用性上都是有些挑战的,此时选择python开发是个明智的选择。 下面对python开发桌面应用工具的步骤做下总结。
开发环境准备
python开发我选择在Pycharm 上进行,新建工程,配置解释器及venv,这些跟普通的python项目开发一样。
安装PyQt5及PyQt5-tools:
pip3 install PyQt5
pip3 install PyQt5-tools
可以将PyUIC和Qt Designer两个工具添加到pycharm中,或者找到安装位置、直接命令行运行。
开发步骤:
- GUI开发
打开PyQt Designer,根据需求确定好的GUI,在PyQt Designer上实现,并保存,文件保存格式为.ui。
designer安装路径:
F:\Python36\Lib\site-packages\pyqt5_tools\Qt\bin\designer.exe
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开发桌面小工具的模板流程,文中工具开发周期仅两天,基本满足功能需求。