打算寫(xiě)一個(gè)辦公助手類(lèi)的程序Zero來(lái)提高工作效率,目標(biāo)平臺(tái)是Windows,開(kāi)發(fā)語(yǔ)言首選python,畢竟是萬(wàn)能的。
python開(kāi)發(fā)相對(duì)來(lái)說(shuō)比較容易,就是程序發(fā)布有些犯難。通常需要在機(jī)器上安裝python環(huán)境和依賴(lài)包,對(duì)普通用戶來(lái)說(shuō)這直接就勸退了。
查了一下午資料,發(fā)現(xiàn)pyinstaller和pyoxidizer這兩個(gè)庫(kù)可以實(shí)現(xiàn)目標(biāo):將python程序及所有依賴(lài)打到一個(gè)獨(dú)立的Windows exe程序中。
pyoxidizer使用方法比pyinstaller復(fù)雜很多,功能目前沒(méi)看出來(lái)有何特別之處,暫時(shí)先用pyinstaller。
首先安裝pyinstaller,
C:\Python39\scripts\pip.exe install pyinstaller
再寫(xiě)一個(gè)最簡(jiǎn)單的zero.py:
import timeif __name__ == "__main__": print("I am Zero\n") time.sleep(10)
打包命令很簡(jiǎn)單:
pyinstaller zero.py
在zero.py同級(jí)目錄下生成文件夾dst\zero,zero.exe是我們熟悉的Windows執(zhí)行程序,將zero文件夾打包給用戶可以直接運(yùn)行,用戶不用安裝python和其他任何依賴(lài)包,
到這里目標(biāo)就完成了,但我不想發(fā)這么一大包文件給用戶,繼續(xù)稍作優(yōu)化,將所有依賴(lài)打包到一個(gè)exe中:
pyinstaller -F .\zero.py
最終生成dst\zero.exe這一個(gè)文件,真正做到了all in one。
在另外一臺(tái)沒(méi)有安裝python的機(jī)器上雙擊zero.exe,程序執(zhí)行正常,打包功能驗(yàn)證完成。
打包成功只是第一步,完備的Windows程序還需要修改圖標(biāo)、增加簽名、添加鼠標(biāo)右鍵菜單等,后面隨著Zero功能的開(kāi)發(fā)再一步步完善。