當我們將我們想要的自動化功能使用程式語言設計完成後,我們會發現要程執行這個程式就必須安裝對應的程式語言,但當我們想將這個功能給其他人用的時候,這時候要特別安裝對應的程式語言,這樣會非常麻煩,所以比較好的解法是將程式語言打包成執行檔(檔案類型為.exe),這時候就可以在沒有安裝對應的程式語言也能夠執行,Python針對程式打包成執行檔比較常使用的pyinstaller模組,以下我們介紹如何使用這個模組來打包程式變成執行檔。
15.1 常見的pyinstaller 參數
我們講常用到的參數列表如下並說明每一個參數的意義。
15.2 建立執行檔
我們將建立執行檔的過程步驟化如下:
Step1. 開啟Anaconda Prompt命令列視窗
Step2. 將路徑切換至.py檔的放置路徑。如果在不同槽,需先切換至另一個槽再修改路徑。
Step3. 輸入打包執行檔指令
這邊特別說明一下,這裡的ico檔路徑與.py檔路徑都是直接為檔名是因為目前的絕對路徑已經在D:\Bolg資料\Python\Python(15),所以在這個路徑下的檔案,要填寫它們的路徑就不用再打上D:\Bolg資料\Python\Python(15)。
Step4. 開始打包
Step3.完成後按下Enter就會開始進行打包,這個過程需要一點時間,尤其.py檔非常大,要等的時間比較久,如果打包成功會顯示下方畫面。
完成後,會出現3個檔案,分別是build、dist、spec檔,其中執行檔會放置在dist資料夾中,此時此執行檔即可直接執行(沒有python環境亦可)。
另外,spec檔內包含打包過程中的參數設定,我們可以從中修改參數設定再透過以下指令就可以重新打包,不需要再重Step1.開始。
15.3 另一種打包執行檔的方式
我們用上述方法打包執行檔會發現所打包出來的執行檔的大小會很大,這是因為我們的anaconda在安裝時就安裝了許多套件,所以打包過程中會把不必要的套件也打包進去,這將使得打包過程會比較久且執行檔再執行的時候也會比較久。這裡我們提供一個比較簡單的方法,就是我們建立一個虛擬環境,在這個虛擬環境下我們只安裝最簡單的python軟體,這時候在這個環境中打包就不會有過多的套件被打包進去,最後打包出來的執行當也會比較小。
以下是建立虛擬環境的步驟:
Step1. 開啟Anaconda Prompt命令列視窗
Step2. 建立虛擬環境與python版本
如果D:\Anaconda\envs文件夾中有出現TestVirtual文件夾代表虛擬環境建立成功。
Step3. 轉換至虛擬環境
Step4. 輸入打包執行檔指令
這邊提醒一下,輸入以上指令後如果出現以下訊息:
'pyinstaller' 不是內部或外部命令、可執行的程式或批次檔。
代表虛擬環境沒有pyinstaller套件,此時請先輸入以下指令安裝pyinstaller套件後再執行以上指令。安裝pyinstaller指令:pip install pyinstaller
我們可以看到有使用虛擬環境再進行打包比沒有使用虛擬環境少了2MB,雖然不多,那是因為我們的例子本身很簡單,打包出來的大小本身就不大,所以檔案大小變小的不夠明顯,如果是沒用虛擬環境打包出來的大小事200M,那用虛擬環境打包出來的大小減少的效果就會很明顯。
15.4
使用upx壓縮器將執行檔大小降低
要使用upx壓縮器將執行檔大小降低,必須先下載upx.exe檔案,可以到官網:https://upx.github.io/下載,下載後將其解壓縮後,將其中的upx.exe檔案複製到Scripts文件夾中(如果你在虛擬環境,就樣放到虛擬環境的Scripts文件夾中),此時再執行打包指令,打包過程就會自動使用upx壓縮。
留言
張貼留言