1. 原因:
打包的很多不必要的模塊進(jìn)去exe可執(zhí)行文件打不開(kāi),導(dǎo)致最終的exe文件過(guò)于龐大。
2. 未優(yōu)化的打包方式A. 用 打包 程序,首先我們需要安裝 :
pip install pyinstaller
B. 打包
pyinstaller --distpath Release/ -w -i x.ico --clean main.py
C. 采用參數(shù)
--distpath : 打包到哪個(gè)目錄下
-w: 指定生成 GUI 軟件,也就是運(yùn)行時(shí)不打開(kāi)控制臺(tái)
-c: 運(yùn)行時(shí)打開(kāi)控制臺(tái)
-i : 指定打包后可執(zhí)行文件的圖標(biāo)
--clean: 在構(gòu)建之前清理PyInstaller緩存并刪除臨時(shí)文件
-D: 創(chuàng)建包含可執(zhí)行文件的單文件夾包,同時(shí)會(huì)有一大堆依賴的 dll 文件,這是默認(rèn)選項(xiàng)

-F: 只生成一個(gè) .exe 文件,如果項(xiàng)目比較小的話可以用這個(gè),但比較大的話就不推薦
3. 優(yōu)化打包
#第一步,建立虛擬環(huán)境
pipenv install
#第二步,進(jìn)入虛擬環(huán)境
pipenv shell

#第三步,安裝自己最終打包的py文件下需要的模塊即可
pip install xxx
#第四步,安裝pyinstaller打包用
pip install pyinstaller
#開(kāi)始打包
pyinstaller -F xxxxxxxxxxxxxxxxxx
是一款管理虛擬環(huán)境的命令行軟件,簡(jiǎn)單來(lái)講,它可以創(chuàng)建一個(gè)只在某個(gè)目錄下的局部 環(huán)境,而這個(gè)環(huán)境是可以和全局環(huán)境脫離開(kāi)的。步驟如下:
A. 安裝
pip install pipenv
B. 選一個(gè)好目錄做我們的虛擬環(huán)境,然后在該目錄下:
pipenv install --python 3.7
或者 pipenv install --python --three
這樣就可以在目錄下創(chuàng)建一個(gè)局部的環(huán)境了,我這里設(shè)為 3.7 是因?yàn)槲易约河玫氖?3.7,具體設(shè)什么根據(jù)自己的情況來(lái)定。
C. 在命令行下激活環(huán)境
pipenv shell
輸入這個(gè)命令,我們就進(jìn)入到了新建的虛擬環(huán)境。如果你這時(shí)候使用命令 pip list 并發(fā)現(xiàn)里面只有很少的庫(kù),這就說(shuō)明我們成功進(jìn)入虛擬環(huán)境了。
D. 安裝依賴的庫(kù)
在虛擬環(huán)境下安裝 和你自己的腳本依賴的第三方庫(kù)
E. 開(kāi)始打包
把你的腳本放到這個(gè)目錄下面,運(yùn)行 ,方法同前exe可執(zhí)行文件打不開(kāi),這時(shí)我們就會(huì)用虛擬環(huán)境下的 來(lái)打包庫(kù)。