1. 安裝pyinstaller
pip install pyinstaller
2. 打包
打開cmd虱痕,切換到需要打包的文件(demo.py)目錄恐锦。執(zhí)行
pyinstaller -F -w demo.py
生成的exe文件就在子目錄dist中诚欠。-F表示指定打包后只生成一個(gè)exe格式的文件使碾,-w表示窗口底洗,無(wú)控制臺(tái)款筑。
3. 修改exe圖標(biāo)
-i icon.ico
或者 --icon=icon.ico
圖標(biāo)文件放在要打包的文件同目錄中智蝠。
4. 替換tk默認(rèn)圖標(biāo)
如果文件內(nèi)采用自定義的圖標(biāo)替換tk默認(rèn)圖標(biāo)腾么,使用說(shuō)明文檔的方法root.iconbitmap(icon.ico)
替換tk圖標(biāo)后,打包的exe執(zhí)行失敗杈湾。原因是圖標(biāo)沒有打進(jìn)去解虱,解決方法是打包成文件夾,或者把圖標(biāo)轉(zhuǎn)化成base64數(shù)據(jù)漆撞。
#這段程序可將圖標(biāo)gen.ico轉(zhuǎn)換成icon.py文件里的base64數(shù)據(jù)
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進(jìn)來(lái)的icon.py里的數(shù)據(jù)轉(zhuǎn)換成臨時(shí)文件tmp.ico殴泰,作為圖標(biāo)
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()