Pyinstaller打包的exe文件過大的解決方法

Pyinstaller打包的exe文件過大怎麼辦?

相信經常用python的朋友都會面臨這麼一個問題,那就是想把自己寫好的python程序打包給別人使用。有的人就會問了”打包“是什麼,爲什麼要打包呢?
“打包”就是將自己電腦上的py文件製作成可執行exe文件的過程,這樣做的目的是讓沒有安裝python環境的朋友也能正常打開使用py程序。
在這裏插入圖片描述
還未安裝pyinstaller的朋友可以直接在cmd窗口運行“pip install pyinstaller”進行下載,我已經安裝過了所以就顯示已安裝。關於pyinstaller有個坑,就是pyinstaller往往是有版本要求的,我記得python有些版本是不能正常打包的,所以在下載python時最好選擇合適的版本,我現在在用的是python3.7.4。
在這裏插入圖片描述
比如我這次打包的單個py文件中就有這幾個庫函數,之前聽說用from…import 比用import可以減少exe的大小,其實我經過操作發現其實不太明顯。不過用就用吧,也不好說這種做法是錯的,只是說沒啥實質用處。

用“pyinstaller -F -w 某某.py”
光是這樣打包出來的文件就有200多M,而且打包的運行時間還又臭又長。
這次是學校作業的上交,大家大多都用java打的,可以只發源碼,頂多就幾百K,我總不可能一枝獨秀髮個幾百M的的壓縮包過去吧。
在網上找了許久,這兩個網站我覺得對這個問題有建設性的價值:
Python: Excluding Modules Pyinstaller

CodingDog某不知名農業大學英語專業的python愛好者

我們先打包生成一次spec文件,然後記事本打開,更改spec文件中的內容,就像這樣:
在這裏插入圖片描述
然後使用“ pyinstaller --clean -F 某某.spec” 打包,你會驚奇地發現,打包的速度不僅快了好多,從幾分鐘變成幾秒就OK,而且最終的 exe 也從200多M變成了10 M。這篇文章打包用的代碼會在後續中發佈,那就是另外一回事了。迴歸正題:
其中標黃色的位置就是要添加的內容,這就有人問了,這些東西在哪裏找的啊,我怎麼知道要添加這些,其實我也是不知道的,我是根據自己的直覺試出來的,這些庫對於程序是不必要的,我們就可以在excludes中添加它們,表示我們不把這些庫打包到exe中。那哪些庫不需要,要如何尋找呢?
在這裏插入圖片描述
看到其中的黃字了嗎,這些個Loading就是我們的目標,我們將其中的這些庫名,試探性地輸入到spec文件的excludes列表,經過上面的指令的測試,然後運行exe文件是否成功,將我們的exe文件不斷地縮小。你可以通過cmd中的輸出提示不斷地改善excludes列表,達到exe程序最小化。我暫時是知足了,200M到10M二十倍的縮小,多次嘗試相信你也可以很快減小exe的大小的!
喜歡的看官點個贊吧!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章