源碼分析 SpringBoot自動配置流程 首先,我們要瞭解在@SpringBootApplication註解的內部,還具有@EnableAutoConfiguration,@SpringBootConfiguration,@ComponentScan三個主要註解。 @SpringBootC ...
之前也寫過很多的小工具,粉絲朋友們應該都知道在本公眾號內回覆任意關鍵字即可獲取以往的工具源碼或是exe可執行應用。
因為以往發過的小工具基本都是幾十MB大小的exe應用,也就沒有在意exe太大給大家帶來的困擾,今天就準備來徹底的解決一下這個問題。
其實每次打包的exe的應用過大無非就是兩個方面的語言因導致的,一是我們在開發的代碼的過程中為了簡便經常使用import *的操作直接導入庫中所有的模塊。
二是在打包過程中直接使用現有的環境直接利用pyinstaller的命令,導致python的很多標準庫和不需要的三方模塊被導入。分析清楚原因那就好辦了,解決辦法肯定是有的,那就是pipenv非標準庫。
接下來具體看看我們該如何使用pipenv打出最小的exe的應用,沒有安裝的話使用pip的方式安裝一下即可。
pip install pipenv -i https://pypi.tuna.tsinghua.edu.cn/simple/
安裝完成後,即可以使用pipenv的虛擬環境來進行操作了,正常情況下安裝下麵的步驟執行pipenv的虛擬環境操作:
- 建立虛擬環境
pipenv install - 進入虛擬環境(上一步可省略,因為沒有虛擬環境的話會自動建立一個)
pipenv shell - 安裝需要打包的代碼塊中使用到的所有的python模塊
pip install requests pyquery pysimplegui fake_useragent - 安裝pyinstaller模塊用於打包
pip install pyinstaller - 使用pyinstaller命令直接開始打包
pyinstaller -Fw E:\test014\test4.py
需要註意的是如何物理環境中已經安裝了pyinstaller,在pipenv的虛擬環境中這個命令是可以使用的,但是千萬不要這麼做需要在pipenv的虛擬環境中再次安裝一下否則打出來的exe的應用包還是很大。
這是因為物理環境中原有的pyinstaller已經關聯了很多的python內聯模塊,導致就算在虛擬環境中打的exe程式包仍然非常大的緣故。
另一個需要註意的是在pipenv的需要環境中必須安裝好需要打包的代碼塊中所引用的相關python模塊,不然打出來的exe程式包也不能正常運行的。
掌握了上述的pipenv虛擬環境的使用以及pyinstaller的使用,我們都能打出非常小且可用的exe程式包,感謝大家的閱讀!
【往期精彩】
吐血整理python數據分析利器pandas的八個生命周期!
歡迎關註作者公眾號【Python 集中營】,專註於後端編程,每天更新技術乾貨,不定時分享各類資料!