Python作為腳本語言是沒有自帶的編譯方法谒兄,想編譯成Windows可直接運(yùn)行.exe文件得借助Python的第三方包璧诵,pyinstaller
pyinstaller 安裝
pip install pyinstaller
pyinstaller通用參數(shù)
參數(shù)名 |
描述 |
說明 |
-h |
顯示幫助 |
無 |
-v |
顯示版本號 |
無 |
–distpath |
生成文件放在哪里 |
默認(rèn):當(dāng)前目錄的dist文件夾內(nèi) |
–workpath |
生成過程中的中間文件放在哪里 |
默認(rèn):當(dāng)前目錄的build文件夾內(nèi) |
-y |
如果dist文件夾內(nèi)已經(jīng)存在生成文件饲窿,則不詢問用戶蔽午,直接覆蓋 |
默認(rèn):詢問是否覆蓋 |
–upx-dir |
UPX_DIR 指定upx工具的目錄 |
默認(rèn):execution path |
-a |
不包含unicode支持 |
默認(rèn):盡可能支持unicode |
–clean |
在本次編譯開始時(shí)樟遣,清空上一次編譯生成的各種文件 |
默認(rèn):不清除 |
–log-level |
LEVEL 控制編譯時(shí)pyi打印的信息 一共有6個(gè)等級雕憔,由低到高分別為TRACE DEBUG INFO(默認(rèn)) WARN ERROR CRITICAL姿骏。 |
默認(rèn):清空下,不打印TRACE和DEBUG信息 |
與生成結(jié)果有關(guān)的參數(shù)
參數(shù)名 |
描述 |
說明 |
-D |
生成one-folder的程序 |
(默認(rèn)) 生成結(jié)果是一個(gè)目錄斤彼,各種第三方依賴分瘦、資源和exe同時(shí)存儲在該目錄 |
-F |
生成one-file的程序 |
生成結(jié)果是一個(gè)exe文件,所有的第三方依賴琉苇、資源和代碼均被打包進(jìn)該exe內(nèi) |
–specpath |
指定.spec文件的存儲路徑 |
默認(rèn):當(dāng)前目錄 |
-n |
生成的.exe文件和.spec的文件名 |
默認(rèn):用戶腳本的名稱擅腰,即main.py和main.spec |
-d |
執(zhí)行生成的main.exe |
會輸出pyi的一些log,有助于查錯 默認(rèn):不輸出pyi的log |
-s |
優(yōu)化符號表 |
原文明確表示不建議在windows上使用 |
–noupx |
強(qiáng)制不使用upx |
默認(rèn):盡可能使用翁潘。 |
–runtime-tmpdir |
指定運(yùn)行時(shí)的臨時(shí)目錄 |
默認(rèn):使用系統(tǒng)臨時(shí)目錄 |
指定打包哪些資源、代碼
參數(shù)名 |
描述 |
說明 |
–add-data |
打包額外資源 |
用法:pyinstaller main.py --add-data=src;dest歼争。windows以;分割拜马,linux以:分割 |
–add-binary |
打包額外的代碼 |
用法:同–add-data。與–add-data不同的是沐绒,用binary添加的文件俩莽,pyi會分析它引用的文件并把它們一同添加進(jìn)來 |
-p |
指定額外的import路徑 |
類似于使用PYTHONPATH 參見PYTHONPATH |
–hidden-import |
打包額外py庫 pyi在分析過程中 |
有些import沒有正確分析出來,運(yùn)行時(shí)會報(bào)import error乔遮,這時(shí)可以使用該參數(shù) |
–additional-hooks-dir |
指定用戶的hook目錄 |
hook用法參見其他扮超,系統(tǒng)hook在PyInstaller\hooks目錄下 |
–runtime-hook |
指定用戶runtime-hook |
如果設(shè)置了此參數(shù),則runtime-hook會在運(yùn)行main.py之前被運(yùn)行 |
–exclude-module |
需要排除的module |
pyi會分析出很多相互關(guān)聯(lián)的庫蹋肮,但是某些庫對用戶來說是沒用的出刷,可以用這個(gè)參數(shù)排除這些庫,有助于減少生成文件的大小 |
–key |
pyi會存儲字節(jié)碼 |
指定加密字節(jié)碼的key 16位的字符串 |
Windows和Mac特有的參數(shù)
參數(shù)名 |
描述 |
說明 |
-c |
顯示命令行窗口 與-w相反坯辩, |
默認(rèn)含有此參數(shù) |
-w |
不顯示命令行窗口 |
編寫GUI程序時(shí)使用此參數(shù)有用馁龟。 |
-i |
為main.exe |
指定圖標(biāo) pyinstaller -i beauty.ico main.py |
Windows特有的參數(shù)
參數(shù)名 |
描述 |
說明 |
–version-file |
添加版本信息文件 |
pyinstaller --version-file ver.txt |
-m, --manifest |
添加manifest文件 |
pyinstaller -m main.manifest |
-r RESOURCE |
請參考原文 |
–uac-admin |
請參考原文 |
–uac-uiaccess |
請參考原文 |
pyinstaller -D --add-data "templates;templates" --add-data "data;data" main.py
原文(英文): https://pyinstaller.readthedocs.io/en/v3.3.1/usage.html
轉(zhuǎn)載:https://blog.csdn.net/qq_40430818/article/details/121846273