tkinter 打包成exe可执行文件
1.安装pyinstaller
pip install pyinstaller
2.打包
打开cmd,切换到需要打包的文件(demo.py)目录。执行
pyinstaller -F -w demo.py
。
生成的exe文件就在子目录dist中。-F表示指定打包后只生成一个exe格式的文件,-w表示窗口,无控制台。
3.修改exe图标
-i icon.ico 或者 --icon=icon.ico
图标文件放在要打包的文件同目录中。
4.替换tk默认图标
如果文件内采用自定义的图标替换tk默认图标,使用说明文档的方法root.iconbitmap(icon.ico)
替换tk图标后,打包的exe执行失败。原因是图标没有打进去,解决方法是打包成文件夹,或者把图标转化成base64数据。
这段程序可将图标gen.ico转换成icon.py文件里的base64数据 import base64 open_icon = open("gen.ico","rb") b64str = base64.b64encode(open_icon.read()) open_icon.close() write_data = "img = '{0}'".format(b64str) f = open("icon.py","w+") f.write(write_data) f.close()
修改主程序:
import base64 from icon import img import os 将import进来的icon.py里的数据转换成临时文件tmp.ico,作为图标 tmp = open('tmp.ico', 'wb+') tmp.write(base64.b64decode(img)) tmp.close() root.iconbitmap('tmp.ico') os.remove('tmp.ico') MainSerialToolUI(master=root) root.resizable(False, False) root.mainloop()