Python作為腳本語(yǔ)言是沒(méi)有自帶的編譯方法,想編譯成Windows可直接運(yùn)行.exe文件得借助Python的第三方包,pyinstaller
pyinstaller 安裝
pip install pyinstaller
pyinstaller通用參數(shù)
| 參數(shù)名 |
描述 |
說(shuō)明 |
| -h |
顯示幫助 |
無(wú) |
| -v |
顯示版本號(hào) |
無(wú) |
| –distpath |
生成文件放在哪里 |
默認(rèn):當(dāng)前目錄的dist文件夾內(nèi) |
| –workpath |
生成過(guò)程中的中間文件放在哪里 |
默認(rèn):當(dāng)前目錄的build文件夾內(nèi) |
| -y |
如果dist文件夾內(nèi)已經(jīng)存在生成文件,則不詢問(wèn)用戶,直接覆蓋 |
默認(rèn):詢問(wèn)是否覆蓋 |
| –upx-dir |
UPX_DIR 指定upx工具的目錄 |
默認(rèn):execution path |
| -a |
不包含unicode支持 |
默認(rèn):盡可能支持unicode |
| –clean |
在本次編譯開(kāi)始時(shí),清空上一次編譯生成的各種文件 |
默認(rèn):不清除 |
| –log-level |
LEVEL 控制編譯時(shí)pyi打印的信息 一共有6個(gè)等級(jí),由低到高分別為T(mén)RACE DEBUG INFO(默認(rèn)) WARN ERROR CRITICAL。 |
默認(rèn):清空下,不打印TRACE和DEBUG信息 |
與生成結(jié)果有關(guān)的參數(shù)
| 參數(shù)名 |
描述 |
說(shuō)明 |
| -D |
生成one-folder的程序 |
(默認(rèn)) 生成結(jié)果是一個(gè)目錄,各種第三方依賴(lài)、資源和exe同時(shí)存儲(chǔ)在該目錄 |
| -F |
生成one-file的程序 |
生成結(jié)果是一個(gè)exe文件,所有的第三方依賴(lài)、資源和代碼均被打包進(jìn)該exe內(nèi) |
| –specpath |
指定.spec文件的存儲(chǔ)路徑 |
默認(rèn):當(dāng)前目錄 |
| -n |
生成的.exe文件和.spec的文件名 |
默認(rèn):用戶腳本的名稱(chēng),即main.py和main.spec |
| -d |
執(zhí)行生成的main.exe |
會(huì)輸出pyi的一些log,有助于查錯(cuò) 默認(rèn):不輸出pyi的log |
| -s |
優(yōu)化符號(hào)表 |
原文明確表示不建議在windows上使用 |
| –noupx |
強(qiáng)制不使用upx |
默認(rèn):盡可能使用。 |
| –runtime-tmpdir |
指定運(yùn)行時(shí)的臨時(shí)目錄 |
默認(rèn):使用系統(tǒng)臨時(shí)目錄 |
指定打包哪些資源、代碼
| 參數(shù)名 |
描述 |
說(shuō)明 |
| –add-data |
打包額外資源 |
用法:pyinstaller main.py --add-data=src;dest。windows以;分割,linux以:分割 |
| –add-binary |
打包額外的代碼 |
用法:同–add-data。與–add-data不同的是,用binary添加的文件,pyi會(huì)分析它引用的文件并把它們一同添加進(jìn)來(lái) |
| -p |
指定額外的import路徑 |
類(lèi)似于使用PYTHONPATH 參見(jiàn)PYTHONPATH |
| –hidden-import |
打包額外py庫(kù) pyi在分析過(guò)程中 |
有些import沒(méi)有正確分析出來(lái),運(yùn)行時(shí)會(huì)報(bào)import error,這時(shí)可以使用該參數(shù) |
| –additional-hooks-dir |
指定用戶的hook目錄 |
hook用法參見(jiàn)其他,系統(tǒng)hook在PyInstaller\hooks目錄下 |
| –runtime-hook |
指定用戶runtime-hook |
如果設(shè)置了此參數(shù),則runtime-hook會(huì)在運(yùn)行main.py之前被運(yùn)行 |
| –exclude-module |
需要排除的module |
pyi會(huì)分析出很多相互關(guān)聯(lián)的庫(kù),但是某些庫(kù)對(duì)用戶來(lái)說(shuō)是沒(méi)用的,可以用這個(gè)參數(shù)排除這些庫(kù),有助于減少生成文件的大小 |
| –key |
pyi會(huì)存儲(chǔ)字節(jié)碼 |
指定加密字節(jié)碼的key 16位的字符串 |
Windows和Mac特有的參數(shù)
| 參數(shù)名 |
描述 |
說(shuō)明 |
| -c |
顯示命令行窗口 與-w相反, |
默認(rèn)含有此參數(shù) |
| -w |
不顯示命令行窗口 |
編寫(xiě)GUI程序時(shí)使用此參數(shù)有用。 |
| -i |
為main.exe |
指定圖標(biāo) pyinstaller -i beauty.ico main.py |
Windows特有的參數(shù)
| 參數(shù)名 |
描述 |
說(shuō)明 |
| –version-file |
添加版本信息文件 |
pyinstaller --version-file ver.txt |
| -m, --manifest |
添加manifest文件 |
pyinstaller -m main.manifest |
| -r RESOURCE |
請(qǐng)參考原文 |
| –uac-admin |
請(qǐng)參考原文 |
| –uac-uiaccess |
請(qǐng)參考原文 |
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
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。