1. 程式人生 > 其它 >pyinstaller引數介紹以及總結

pyinstaller引數介紹以及總結

一、pyinstaller相關引數

-F,–onefile 打包一個單個檔案,如果你的程式碼都寫在一個.py檔案的話,可以用這個,如果是多個.py檔案就別用
-D,–onedir 打包多個檔案,在dist中生成很多依賴檔案,適合以框架形式編寫工具程式碼,我個人比較推薦這樣,程式碼易於維護
-K,–tk 在部署時包含TCL/TK
-a,–ascii 不包含編碼.在支援Unicode的python版本上預設包含所有的編碼.
-d,–debug 產生debug版本的可執行檔案
-w,–windowed,–noconsole 使用Windows子系統執行.當程式啟動的時候不會開啟命令列(只對Windows有效)
-c,–nowindowed,–console
使用控制檯子系統執行(預設)(只對Windows有效)

pyinstaller -cxxxx.py

pyinstaller xxxx.py --console

-s,–strip 可執行檔案和共享庫將runthroughstrip.注意Cygwin的strip往往使普通的win32Dll無法使用.
-X,–upx 如果有UPX安裝(執行Configure.py時檢測),會壓縮執行檔案(Windows系統中的DLL也會)(參見note)
-oDIR,–out=DIR 指定spec檔案的生成目錄,如果沒有指定,而且當前目錄是PyInstaller的根目錄,會自動建立一個用於輸出(spec和生成的可執行檔案)的目錄.如果沒有指定,而當前目錄不是PyInstaller的根目錄,則會輸出到當前的目錄下.
-pDIR,–path=DIR 設定匯入路徑(和使用PYTHONPATH效果相似).可以用路徑分割符(Windows使用分號,Linux使用冒號)分割,指定多個目錄.也可以使用多個-p引數來設定多個匯入路徑,讓pyinstaller自己去找程式需要的資源
–icon=<FILE.ICO>
將file.ico新增為可執行檔案的資源(只對Windows系統有效),改變程式的圖示pyinstaller -iico路徑 xxxxx.py

–icon=<FILE.EXE,N> 將file.exe的第n個圖示新增為可執行檔案的資源(只對Windows系統有效)
-vFILE,–version=FILE 將verfile作為可執行檔案的版本資源(只對Windows系統有效)
-nNAME,–name=NAME 可選的專案(產生的spec的)名字.如果省略,第一個指令碼的主檔名將作為spec的名字


二、pyinstaller爬坑總結

第一次玩pyinstaller,遇到了不少坑,在這裡總結一下,以免日後再次掉坑裡。

1、先從這次寫的工具再說吧,寫這個工具的初衷是由於自己手工造資料檔案花了很長時間,然後就想著寫個工具來解決這個問題(也是想鍛鍊下自己的程式碼能力,哈哈哈),利用下班晚上以及週末寫了一週大概寫出來了。

這個工具是個掃碼支付檔案生成工具,主要是解決手工造檔案資料,有兩個功能,一是基礎掃碼檔案生成功能、二是大批量掃碼檔案生成功能,同時加上了使用者auth控制。

在這裡提醒大家,在程式碼裡面儘量不要用import,能from.....import....就儘量用這個,因為如果是import的話,在打包的時候,會將整個包都打包到exe裡面,沒有意義的增大了工具的大小!

大概框架如下:

2、Gui開發完畢後,開始研究pyinstaller,也翻閱了論壇關於pyinstaller的相關用法,這裡總結下我的工具的打包步驟

2.1、先下載pyinstaller,我比較懶,就直接用pip install pyinstaller,等待自動安裝

2.2、在程式碼的路徑下進行cmd,就直接跳轉到該路徑的cmd介面,切記路徑中不要有中文

2.3、先用後臺模式生成工具exe,命令為pyinstaller xxxx.py檔案,主要目的是為了看報錯資訊,解決了報錯後,再生成完整版的工具

tip:由於我的程式碼是存在依賴的,即多檔案的,而非所有程式碼都在一個檔案中的,所以我在這裡沒有使用-F,剛開始玩的時候不知道,老是用了-F生成了單檔案的,沒有生成依賴,老是不成功,各位朋友切記!

下圖為命令生成的日誌,紅框部分則為exe工具生成的路徑,如果在日誌中只有info資訊的話,說明打包過程沒有問題

2.4、找到生成的exe檔案,執行exe(生成的exe檔案都會在dist目錄下)

執行時,我遇到了以下的報錯資訊,是在dist找到相關的圖片資源,所以需要把所有關於工具所需的資源(包含圖片以及依賴的.py檔案都放進dist下的專案目錄中)

2.5、再次執行exe,此時執行成功,說明工具打包成功

2.6、重新生成exe工具,去掉後臺模式以及更換掉圖示

給大家推薦一個圖示獲取地址,裡面ico蠻多的:easyicon

下載了自己心儀的ico後,用-i+ico路徑來替換預設ico,這次重新生成exe工具,命令為pyinstaller -i ico路徑 -w xxxx.py

再將需要的圖片資源和程式碼檔案放到dist下的專案資料夾中

2.7、執行exe,能夠開啟則表示pyinstaller打包exe成功

//https://blog.csdn.net/marleylee/article/details/103015377 轉自連結:https://blog.csdn.net/BearStarX/article/details/81054134
最近利用tkinter+python+pyinstaller實現了小工具的專案,在此記錄下pyinstaller相關引數以及爬過的坑。