前言
最近为了打包一个window系统的远程测温插件。需要把Python程序打包成.exe放在目标电脑运行。
python打包.exe的方法。网上有很多教程。有些教程很详细,但实际操作上很多还是用不到。我在这里写一个快速打包的实操流程。
我们用的的打包工具是 pyinstaller .
第一步,安装pyinstaller 工具
pip installl pyinstaller
建议在虚拟环境下安装。
然后,下载 upx (exe压缩工具),把upx.exe文件放在和pyinstaller.exe相同的目录下。
UPX: the Ultimate Packer for eXecutables - Homepage
python是32位的下载 upx-4.2.4-win32.zip , python是64位下载 upx-4.2.4-win64.zip
第二部,开始打包
pyinstaller -F -w --name:test.exe main.py
这里主要用到三个参数
-F:打包成一个独立的.exe.
-w: 打包的程序关闭命令窗口。
--name:设置好文件命令
第三部,修改参数加载相关文件
完成第二部,系统会生成 dist文件夹,这是这里的.exe文件运行会提示缺少相关文件。
这是,你在主程序文件夹下,会找到一个 test.exe.spec 后缀的文件。这是,虚拟需要修改如下几部分:
1. 修改 datas, [('需要加载的文件','需要加载文件的目录')]
这里,我们演示程序需要加载.dll文件和图标文件。
‘
exe 参数中,需要把 icon的图标文件添加进去。
然后,运行如下程序再次打包
pyinstaller test.exe.spec
pyqt5打包时的补充说明
如果你打包的是pyqt5程序,这里必须事先把图片文件转成py文件,不然打包后,程序内的图标不能显示。
首先,我们在qt_Designer,打开对应页面的.ui文件。然后,编辑资源管理器,把你要添加的图标加载到资源目录里。
保存后,会生成一个.qrc文件。
<RCC>
<qresource prefix="pic">
<file>logo_128.ico</file>
</qresource>
</RCC>
执行,下面命令生成py文件
pyrcc5 -o logo_rc.py logo.qrc
最后,把新生成为py文件,添加到 pyqt的窗体主文件中。
然后,运行如下程序再次打包
pyinstaller test.exe.spec
运行结果,程序运行正常,图标正常显示。