Python打包成exe,檔案太大問題解決辦法
- 原因
- 解決辦法
- 具體步驟
-
- 情況一:初次打包
- 情況二:再次打包
原因
由于使用
pyinstaller
打包
.py
檔案時,會把很多已安裝的無關庫同時打包進去,導緻打包生成的
.exe
檔案體積過大。
解決辦法
使用
pipenv
建立虛拟
python
環境,在虛拟環境中安裝
.py
檔案所用到的庫(即
py
檔案中
import
的第三方庫),然後在
pipenv
所建立的虛拟環境中使用
pip
安裝打包所用到的
pyinstaller
。注意:本機安裝過
pyinstaller
的也要重新進入虛拟環境中安裝,不然會使用
pyinstaller
指令打包時,還是會生成大體積的
.exe
可執行檔案。
具體步驟
情況一:初次打包
- 在指令行(CMD)使用
指令安裝pip
庫,用于建立虛拟環境pipenv
pip install pipenv
- 建立一個準備當環境的檔案夾,并cd進入該檔案夾
- 建立虛拟環境
pipenv install
- 進入虛拟環境(以下操作皆為虛拟環境下的操作)
pipenv shell
- 安裝.py檔案用到的子產品
pip install 【.py用到的子產品】
- 安裝pyinstaller子產品,用于打包.py檔案
pip install pyinstaller
- 使用pyinstaller打封包件
- 結果檔案
運作完第7步之後,在目錄下回生成‘dist’檔案夾,裡面存放的就是結果檔案。
情況二:再次打包
若再次打包時,情況一中所建立的虛拟環境未曾删除,可跳過情況一中的第1、2、3步,直接進行第四步進入虛拟環境。然後第5步同理保留原先添加過的py子產品,即若無新增新的子產品,可跳過第5步和第6步,直接進行第7步打包操作。
- cd進入此前建立虛拟環境的檔案夾。
- 進入虛拟環境(以下操作皆為虛拟環境下的操作)
pipenv shell
- 安裝.py檔案用到的子產品
pip install 【相較上一次打包新增的子產品】
- 使用pyinstaller打封包件