pyinstaller 打包 exe 程式步驟和新增依賴檔案方法

Lgq發表於2020-12-21

hello,各位騷年,大家好,我是騷強,或許我們並不是專業的程式設計師,但是卻可以通過python來提高我們的工作效率,減少加班時間,讓程式碼替我們完成一些重複的工作,節省下來的時間去泡個妹子,牽牽小手不香嗎

在這裡插入圖片描述
話不多說,馬上進入pyinstaller打包工具教程,隔壁家小東女朋友叫我待會一起去吃飯呢。。。。。

1、安裝pyinstaller庫。命令列輸入以下命令,如圖顯示是我已經裝過了:

pip install pyinstaller

在這裡插入圖片描述
2、pyinstaller的打包機制:
python指令碼的執行離不開python直譯器,把指令碼打包成exe可執行檔案時,pyinstaller會將python直譯器和指令碼一起打包,同時把需要用到的第三方庫和依賴包一併打入到exe檔案中,下面我就以最近寫的一款裝包工具為例,簡述一下我的打包過程。

3、打包命令:

pyinstaller-F [main.py]

這條命令指的是將以main.py為主程式的指令碼打包為單獨一個exe檔案,-F參數列示覆蓋打包,無論打多少次包都會是最新的。你可以選擇cmd命令列進行操作,也可以使用pycharm的Terminal埠進行,我使用的是Terminal。如圖。
在這裡插入圖片描述
執行完畢後,會看到build,dist,和.spec檔案生成。dist裡面的exe檔案就是剛剛生成的可執行檔案,這樣簡單快捷的打包就完成啦。

4、新增導包外的一些依賴檔案。
像第3步這種情況是程式中不需要依賴外部檔案的,假如程式邏輯中需要依賴一些檔案,但pyinstaller並不會將自動把這些檔案幫你打包進去,比如,一個第三方庫中有一段程式需要去使用public.xml檔案,當打包完成後,這個檔案是不會自動打包進去的,那該怎麼辦呢?
在這裡插入圖片描述
別急,pyinstaller為我們提供了引數配置檔案,也就是剛剛生成的.spec檔案,我們只需要再datas中配置需要打包的檔案即可,比如

datas=[('D:\\python3.6.5\\Lib\\site-packages\\androguard\\core\\resources\\public.xml','androguard\\core\\resources')

表示的是將public.xml檔案打包到androguard\core\resources目錄下
在這裡插入圖片描述
其他的一些引數配置請自行百度,如有時需要讓pyinstaller不打包某些用不到的模組,可通過在excludes=[]中新增此模組實現,如excludes=['xxx']。

5、.spec 打包:這樣修改後我們就可以使用命令進行再次打包啦,打包完成後開啟軟體,發現需要用到依賴檔案相關功能就正常啦。

pyinstaller -D xxx.spec 

6、ok,這次的pyinstaller打包就分享到這裡了,有什麼疑問歡迎在評論區留言,話不多說,小東女朋友叫我去吃飯了。
在這裡插入圖片描述

相關文章