??本文介紹基于Python語言中的pyinstaller
模塊,將寫好的.py
格式的Python代碼及其所用到的所有第三方庫打包,生成.exe
格式的可執行文件,從而方便地在其他環境、其他電腦中直接執行這一可執行文件的方法。
??有時,我們希望將自己電腦上的某個Python文件發到另一臺電腦上使用;而如果這個Python文件中包含了大量的第三方庫,那么首先不僅需要保證另一臺電腦上有Python環境,而且還需要配置好這些第三方庫——這無疑是比較麻煩的。但是,我們可以選擇將Python文件(及其所包含的全部第三方庫)打包為.exe
文件,然后發送給其他電腦并直接加以執行;而這個打包的過程,基于Python語言中的pyinstaller
模塊,就可以非常方便地進行。本文就介紹一下這個打包的具體方法。
??但是需要注意,pyinstaller
模塊打包后的可執行文件是不可以跨平臺使用的——例如,在Windows上將一個Python代碼文件打包,得到的可執行文件就只能在Windows上使用,而在Linux和Mac上是不可以使用的;如果大家有這樣跨平臺使用的需求,pyinstaller
模塊的官方網站則建議借助Wine來代替實現。
??首先,我們需要配置一下Python語言中的pyinstaller
模塊。這里需要注意,如果大家待打包的這個Python代碼文件是放在了虛擬環境中,那么這個pyinstaller
模塊也需要配置在這個虛擬環境中。
??在本文中,因為我的待打包文件就是在虛擬環境中,所以首先通過如下的代碼進入這一虛擬環境中。其中,關于Python虛擬環境的創建與使用,大家可以參考文章Anaconda中Python虛擬環境的創建、使用與刪除(https://blog.csdn.net/zhebushibiaoshifu/article/details/128334614)。
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
模塊的官方網站(https://pyinstaller.org/en/stable/index.html)即可。
-h:顯示關于pyinstaller命令的幫助。
-D:如果不想要前面-F的效果,那就用這個-D,從而生成多個可執行文件。
-i:如果大家想修改打包后生成的可執行文件的圖標,就將自己的圖標文件放在這個參數后。
-w:如果大家待打包的Python代碼會生成一個GUI界面,那么需要添加此參數,否則后期打開可執行文件時,你的GUI界面可能會被自動彈出的黑色的控制臺遮蓋導致無法正常顯示。
??對于大多數需求而言,我們就用上述的那一句代碼即可。執行上述代碼,出現如下圖所示的界面,表明已經開始打包了。
??稍等片刻(如果待打包的Python代碼文件中導入的第三方庫比較多,那么打包的時間相對就會長一點,但整體不會太久),出現如下圖所示的提示,表明打包已經成功完成了。
??此時,我們在與待打包Alignment.py
文件同目錄的路徑中,可以看到pyinstaller
模塊對其打包后生成的3
個新的文件夾或文件,如下圖所示。
??其中,打開dist
這個文件夾,其中的.exe
可執行文件,就是我們打包后的文件。
??接下來,在這臺電腦,或者是其他人的電腦中,運行上圖中的這個.exe
可執行文件,就會實現和我們當初待打包的Alignment.py
文件相同的功能。
??如下圖所示,我這里因為原本的Alignment.py
文件是一個對數據加以計算的文件,所以運行打包后的可執行文件時,就會出現一個黑色的控制臺,而沒有其他的變化。
??至此,大功告成。
歡迎關注:瘋狂學習GIS