打包Python程序文件:pyinstaller實現

互聯架構唠唠嗑 2024-05-26 11:10:39

本文介紹基于Python語言中的pyinstaller模塊,將寫好的.py格式的Python代碼及其所用到的所有第三方庫打包,生成.exe格式的可執行文件,從而方便地在其他環境、其他電腦中直接執行這一可執行文件的方法。

有時,我們希望將自己電腦上的某個Python文件發到另一台電腦上使用;而如果這個Python文件中包含了大量的第三方庫,那麽首先不僅需要保證另一台電腦上有Python環境,而且還需要配置好這些第三方庫——這無疑是比較麻煩的。

但是,我們可以選擇將Python文件(及其所包含的全部第三方庫)打包爲.exe文件,然後發送給其他電腦並直接加以執行;而這個打包的過程,基于Python語言中的pyinstaller模塊,就可以非常方便地進行。本文就介紹一下這個打包的具體方法。

但是需要注意,pyinstaller模塊打包後的可執行文件是不可以跨平台使用的——例如,在Windows上將一個Python代碼文件打包,得到的可執行文件就只能在Windows上使用,而在Linux和Mac上是不可以使用的;如果大家有這樣跨平台使用的需求,pyinstaller模塊的官方網站則建議借助Wine來代替實現。

首先,我們需要配置一下Python語言中的pyinstaller模塊。這裏需要注意,如果大家待打包的這個Python代碼文件是放在了虛擬環境中,那麽這個pyinstaller模塊也需要配置在這個虛擬環境中。

在本文中,因爲我的待打包文件就是在虛擬環境中,所以首先通過如下的代碼進入這一虛擬環境中:

conda activate py39

隨後,輸入如下的代碼,即可開始配置pyinstaller模塊。

pip install pyinstaller

運行上述代碼,如下圖所示:

隨後,找到我們需要加以打包的Python代碼文件;如下圖所示,這個紫色框內的Alignment.py文件就是本文中需要打包的Python代碼文件。

那麽,首先通過cd命令,進入待打包文件所在的路徑;在本文中,這裏就是執行如下的代碼:

cd F:\Data_Reflectance_Rec\code

隨後,進入這個文件夾內,我們即可通過如下的命令,將Alignment.py文件加以打包。

pyinstaller -F Alignment.py

其中,-F表示對Alignment.py文件打包時,只生成唯一的1個.exe可執行文件;一般情況下,我們都是帶上這個-F參數來運行打包命令的,因爲只生成1個.exe可執行文件的話,更方便後期我們對這個可執行文件的分享。

此外,我們還可以在上述代碼中加入如下的其他常見參數;當然,除此之外還會有很多其他的參數,具體大家參考pyinstaller模塊的官方網站即可。

-h:顯示關于pyinstaller命令的幫助。

-D:如果不想要前面-F的效果,那就用這個-D,從而生成多個可執行文件。

-i:如果大家想修改打包後生成的可執行文件的圖標,就將自己的圖標文件放在這個參數後。

-w:如果大家待打包的Python代碼會生成一個GUI界面,那麽需要添加此參數,否則後期打開可執行文件時,你的GUI界面可能會被自動彈出的黑色的控制台遮蓋導致無法正常顯示。

對于大多數需求而言,我們就用上述的那一句代碼即可。執行上述代碼,出現如下圖所示的界面,表明已經開始打包了。

稍等片刻(如果待打包的Python代碼文件中導入的第三方庫比較多,那麽打包的時間相對就會長一點,但整體不會太久),出現如下圖所示的提示,表明打包已經成功完成了。

此時,我們在與待打包Alignment.py文件同目錄的路徑中,可以看到pyinstaller模塊對其打包後生成的3個新的文件夾或文件,如下圖所示:

其中,打開dist這個文件夾,其中的.exe可執行文件,就是我們打包後的文件。

接下來,在這台電腦,或者是其他人的電腦中,運行上圖中的這個.exe可執行文件,就會實現和我們當初待打包的Alignment.py文件相同的功能。

如下圖所示,我這裏因爲原本的Alignment.py文件是一個對數據加以計算的文件,所以運行打包後的可執行文件時,就會出現一個黑色的控制台,而沒有其他的變化。

至此,大功告成。

作者:瘋狂學習GIS鏈接:https://juejin.cn/post/7372082380482740258

1 阅读:46

互聯架構唠唠嗑

簡介:感謝大家的關注