您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么將Python腳本打包成exe應用程序”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“怎么將Python腳本打包成exe應用程序”文章能幫助大家解決問題。
我們有時候會編寫Python腳本來輔助我們執行一些重復的操作。但是這些腳本在實際使用中會有一些不方便:
我們通常需要進入終端或者IDE中來運行腳本(當然,有辦法可以實現雙擊腳本文件直接運行,但這不在今天的討論范圍內)。
如果把腳本遷移至其他電腦上,那么Python環境變化,比如新電腦上沒有安裝Python,或者缺乏該腳本所調用的包等,腳本有很大概率無法正常運行。
這時候,我們可以將腳本打包成一個可以獨立運行的應用程序,點開即用,解決上述問題。第三方包Pyinstaller可以實現將Python腳本打包成.exe格式的應用程序,現在以一個例子來介紹使用方法。
首先介紹一下開發的環境。
按照開發習慣,我們的Python腳本在虛擬環境中開發。
項目的路徑:D:\myProject\
虛擬環境路徑:D:\myProject\virtualEnvironment\
腳本存放路徑:D:\myProject\code\
首先在VS code中運行腳本看看效果。這個腳本可以生成一個科研軟件所需的csv格式數據,具有一個簡單的GUI界面,方便用戶設置生成內容。
我們要做的就是將.py格式、需要依賴開發環境的腳本文件打包成一個可以獨立運行的.exe格式應用程序。
腳本在虛擬環境中開發,因此我們也在這個虛擬環境中安裝Pyinstaller。保險起見,在終端中強制采用虛擬環境中的pip來安裝:
D:\myProject\virtualEnvironment\Scripts\python -m pip install pyinstaller
安裝完成之后,在虛擬環境中“Scripts”目錄下可以看到一些新增的應用程序,其中pyinstaller.exe就是用于打包腳本的。
使用Pyinstaller將Python腳本打包成exe應用程序,最基礎的命令是:
pyinstaller codeName.py
為了提高打包成功率,讓打包過程更加清晰可控,我推薦以下步驟。
首先打開一個終端,cd至保存exe應用程序的目錄。例如,我們在項目目錄中新建一個“exe”文件夾,并cd至此:
cd D:\myProject\exe\
然后命令pyinstaller對腳本進行打包:
D:\myProject\virtualEnvironment\Scripts\pyinstaller -F D:\myProject\code\myScript.py
在上述指令中,
D:\myProject\virtualEnvironment\Scripts\pyinstaller是pyinstaller的完整路徑。
D:\myProject\code\myScript.py是被打包的Python腳本的完整路徑。
D:\myProject\exe\是存放生成的exe應用程序的目錄。
打包過程是清晰明確的。
打包完成后,我們查看D:\myProject\exe\目錄,可以看到一些新建的文件夾,進入D:\myProject\exe\dist目錄,可以看到生成的myScript.exe應用程序。
雙擊應用程序,腳本成功啟動。
這樣,腳本所需的環境已經被打包至.exe程序中,腳本的運行將不再需要依賴外部的Python開發環境了。將myScript.exe拷貝至另一臺電腦,即使電腦未安裝Python,腳本也可以順利啟動。
Python腳本有時候需要調用外部文件,這會涉及到“根目錄”和“相對路徑”的問題。經過實測,當我們把腳本打包成exe應用程序時,exe應用程序所在的目錄即為“根目錄”。
以上操作所打包生成的exe應用程序在啟動時會打開一個黑色的命令窗口,不美觀,我們可以在執行打包命令時添加 -w 來消除這個命令窗口:
D:\myProject\virtualEnvironment\Scripts\pyinstaller -F -w D:\myProject\code\myScript.py
這樣生成的exe應用程序在啟動時就不會有這個黑色的命令窗口了。
另外,生成的exe應用程序的圖標亦可自定義,支持.ico格式的圖標文件。在執行打包命令時添加-i來指定圖標文件即可:
D:\myProject\virtualEnvironment\Scripts\pyinstaller -F -w -i D:\myProject\myIcon.ico D:\myProject\code\myScript.py
這樣生成的exe應用程序的圖標就是我們自定義的圖標了。
關于“怎么將Python腳本打包成exe應用程序”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識,可以關注億速云行業資訊頻道,小編每天都會為大家更新不同的知識點。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。