基于PyInstaller各參數(shù)的含義說(shuō)明
說(shuō)明
以下介紹假設(shè)用戶(hù)腳本為main.py,生成結(jié)果為main.exe。
有些參數(shù)實(shí)在很少用到,只列出簡(jiǎn)單介紹,具體請(qǐng)參閱原文。
通用參數(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)存在生成文件,則不詢(xún)問(wèn)用戶(hù),直接覆蓋 | 默認(rèn):詢(xú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):用戶(hù)腳本的名稱(chēng),即main.py和main.spec |
指定打包哪些資源、代碼
| 參數(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 | 指定用戶(hù)的hook目錄 | hook用法參見(jiàn)其他,系統(tǒng)hook在PyInstaller\hooks目錄下 |
| –runtime-hook | 指定用戶(hù)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ì)用戶(hù)來(lái)說(shuō)是沒(méi)用的,可以用這個(gè)參數(shù)排除這些庫(kù),有助于減少生成文件的大小 |
| –key | pyi會(huì)存儲(chǔ)字節(jié)碼,指定加密字節(jié)碼的key | 16位的字符串 |
生成參數(shù)
| 參數(shù)名 | 描述 | 說(shuō)明 |
|---|---|---|
| -d | 執(zhí)行生成的main.exe時(shí),會(huì)輸出pyi的一些log,有助于查錯(cuò) | 默認(rèn):不輸出pyi的log |
| -s | 優(yōu)化符號(hào)表 | 原文明確表示不建議在windows上使用 |
| –noupx | 強(qiáng)制不使用upx | 默認(rèn):盡可能使用。 |
其他
| 參數(shù)名 | 描述 | 說(shuō)明 |
|---|---|---|
| –runtime-tmpdir | 指定運(yùn)行時(shí)的臨時(shí)目錄 | 默認(rèn):使用系統(tǒng)臨時(shí)目錄 |
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)參考原文 |
補(bǔ)充:pyinstaller打包exe常用參數(shù)
pyinstaller 是python的一個(gè)包,可以把python程序打包成exe文件,這樣其他未安裝python的PC也可以執(zhí)行python寫(xiě)的程序
安裝
pip install pyinstaller
常用參數(shù)
-D example.py
生成一個(gè)文件夾,里面有exe文件及其動(dòng)態(tài)庫(kù)
-F example.y
只生成exe文件
-w
運(yùn)行exe時(shí)不顯示控制臺(tái)
-c
運(yùn)行exe時(shí)顯示控制臺(tái)
-i example.ico
為程序添加圖標(biāo)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章
python數(shù)據(jù)可視化pygal模擬擲骰子實(shí)現(xiàn)示例
這篇文章主要為大家介紹了python數(shù)據(jù)可視化pygal模擬擲骰子實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06
python實(shí)現(xiàn)將Excel文件轉(zhuǎn)換為JSON文件
在數(shù)據(jù)處理和分析中,Excel和JSON是兩種常見(jiàn)的數(shù)據(jù)格式,本文將詳細(xì)介紹如何使用Python將Excel文件轉(zhuǎn)換為JSON文件,我們將使用pandas庫(kù),這是一個(gè)強(qiáng)大的數(shù)據(jù)分析工具,能夠方便地讀取和處理各種數(shù)據(jù)格式,需要的朋友可以參考下2024-07-07
使用pycharm設(shè)置控制臺(tái)不換行的操作方法
今天小編就為大家分享一篇使用pycharm設(shè)置控制臺(tái)不換行的操作方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01
Python中分支語(yǔ)句與循環(huán)語(yǔ)句實(shí)例詳解
這篇文章主要給大家介紹了關(guān)于Python中分支語(yǔ)句與循環(huán)語(yǔ)句的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-09-09
Python新版極驗(yàn)驗(yàn)證碼識(shí)別驗(yàn)證碼教程詳解
這篇文章主要介紹了Python新版極驗(yàn)驗(yàn)證碼識(shí)別驗(yàn)證碼,極驗(yàn)驗(yàn)證是一種在計(jì)算機(jī)領(lǐng)域用于區(qū)分自然人和機(jī)器人的,通過(guò)簡(jiǎn)單集成的方式,為開(kāi)發(fā)者提供安全、便捷的云端驗(yàn)證服務(wù)2023-02-02
解決pandas使用read_csv()讀取文件遇到的問(wèn)題
今天小編就為大家分享一篇解決pandas使用read_csv()讀取文件遇到的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-06-06
Python開(kāi)發(fā)加薪利器之Docker的使用實(shí)踐
docker利用容器技術(shù),獨(dú)立運(yùn)行一個(gè)或者一組應(yīng)用,docker是基于go語(yǔ)言開(kāi)發(fā),docker鏡像好比是一個(gè)模版,可以通過(guò)這個(gè)模版來(lái)創(chuàng)建容器服務(wù),今天通過(guò)本文給大家分享Docker的使用實(shí)踐,感興趣的朋友跟隨小編一起看看吧2021-05-05

