pyinstaller可以將python寫好的腳本打包成exe文件奶镶,方便windows用戶在沒有python環(huán)境下運(yùn)行羹奉。這個(gè)程序完全跨平臺(tái),包括Windows笔横、Linux竞滓、Mac OS X等多個(gè)操作系統(tǒng)下運(yùn)行咐吼。因?yàn)槲矣玫氖莣in7,以下直接使用windows打包講解商佑,不同平臺(tái)上使用 PyInstaller方法是一樣的锯茄,它們支持的選項(xiàng)也是一樣的。
安裝Pyinstaller
Python默認(rèn)不包含Pyinstaller模塊茶没,因此需要自行安裝
與安裝其它Python模塊一樣肌幽,使用pip命令安裝即可,一條搞定:
pip install pyinstaller
運(yùn)行上面命令抓半,可以看到如下輸出結(jié)果喂急,表示成功:
Successfully installed altgraph-0.17 pefile-2021.5.24 pyinstaller-4.5.1 pyinstaller....
使用Pyinstaller
Pyinstaller 工具使用的命令語法如下:
pyinstaller 選項(xiàng) python源文件
實(shí)際工作中常用的命令也就幾條:
## -D(默認(rèn)選項(xiàng)),生成build笛求、dist目錄廊移,該選項(xiàng)生成一個(gè)目錄(包含多個(gè)文件)來作為程序
pyinstall -D app.py
## 使用-F選項(xiàng),在dist目錄下生成單獨(dú)的EXE文件(在Mac生成的文件沒有exe后綴)
pyinstaller -F app.py
## -w不顯示GUI窗口探入,-i指定圖標(biāo)
pyinstaller -F -w -i app.ico app.py
如果想給軟件添加自己喜歡的圖標(biāo)狡孔,這里推薦以下方式
https://www.iconfont.cn/ ####免費(fèi)的在線icon圖標(biāo)網(wǎng)站
http://www.favicon-icon-generator.com/ ###免費(fèi)在線生成1
http://www.ico51.cn/ ####免費(fèi)在線生成2
常用參數(shù)說明
-h,--help | 查看該模塊的幫助信息 |
---|---|
-F蜂嗽,-onefile | 產(chǎn)生單個(gè)的可執(zhí)行文件 |
-D苗膝,--onedir | 產(chǎn)生一個(gè)目錄(包含多個(gè)文件)作為可執(zhí)行程序 |
-a,--ascii | 不包含 Unicode 字符集支持 |
-d植旧,--debug | 產(chǎn)生 debug 版本的可執(zhí)行文件 |
-w辱揭,--windowed,--noconsolc | 指定程序運(yùn)行時(shí)不顯示命令行窗口(僅對(duì) Windows 有效) |
-c病附,--nowindowed界阁,--console | 指定使用命令行窗口運(yùn)行程序(僅對(duì) Windows 有效) |
-o DIR,--out=DIR | 指定 spec 文件的生成目錄胖喳。如果沒有指定泡躯,則默認(rèn)使用當(dāng)前目錄來生成 spec 文件 |
-p DIR,--path=DIR | 設(shè)置 Python 導(dǎo)入模塊的路徑(和設(shè)置 PYTHONPATH 環(huán)境變量的作用相似)丽焊。也可使用路徑分隔符(Windows 使用分號(hào)较剃,Linux 使用冒號(hào))來分隔多個(gè)路徑 |
-n NAME,--name=NAME | 指定項(xiàng)目(產(chǎn)生的 spec)名字技健。如果省略該選項(xiàng)写穴,那么第一個(gè)腳本的主文件名將作為 spec 的名字 |
以上只是Pyinstaller模塊所支持的常用選項(xiàng),如需了解更多可通過
pyinstaller -h
來查看雌贱。
實(shí)踐一下
這里簡單寫一個(gè)demo啊送,我們來進(jìn)行打包測試
為了不讓界面執(zhí)行完立即退出偿短,使用input()讓界面暫時(shí)停留
print("鋼鐵俠的知識(shí)庫")
input()
使用命令進(jìn)行打包:
pyinstaller -F test.py
打包成功后會(huì)在dist下找到test.exe文件,執(zhí)行即可看到
以上即表示打包成功馋没。
---- 鋼鐵 648403020@qq.com 2021.08.07
參考鳴謝
http://c.biancheng.net/view/2690.html