打包Python脚本程序为可执行文件exe一般使用pyIntaller,本文介绍的打包的程序源码请参考:分享自己使用python+pyserial+pyQT5写的串口调试助手_fhqlongteng的博客-CSDN博客_python 串口调试助手
本博客中make_exe.bat脚本中,-F参数是生成一个exe文件,在单独生成一个exe文件时,启动时很慢,大约有5秒的时间才启动,这个时间太长了。原因是单独打包成一个exe文件时,会把Python的包全部打包,并且进行压缩,每次启动exe文件时,先解压,再运行,所以启动很慢。
使用Pyintaller打包时,使用-D参数,生成一个目录,包含库与可执行文件,这样避免了运行时解压的过程,增加程序的启动速度。如下图,打包生成一个目录,由于打包会包含全部的库,实际程序运行并不使用,所以需要手工删除进行减少文件大小,需要你手工修改文件名称加上“--”,确认有哪些文件改了名字后也不影响程序运行,经过一个个文件的改名确认,最后删除这些文件。
pycom目录经过删除后,确认保证正常运行的最小文件目录如下:其中只有几箭头标识的文件与应用程序相关,其他文件全部是基于pyqt5编程使用的公共文件。
PyQt5中只需要2个dll文件即可保持运行,如下图中的2个文件。
有了以上的最小运行目录的情况下,再生成另外一个应用程序,只需要把与应用程序相关的程序增加上,原有的程序保持不变动即可。如下,生成一个uphj-001-test.exe文件,这个应用程序中使用了socket通信,所以只需要在这个最小目录的基础上所需要的文件_socket.pyd, _ssl.pyd增加上即可。