1. 程式人生 > 其它 >Python --- pyinstaller --- 打包成exe並更換圖示

Python --- pyinstaller --- 打包成exe並更換圖示

安裝pyinstaller

首先要安裝第三方庫pyinstaller,開啟dos視窗輸入安裝命令如下。

pip install pyinstaller

執行打包命令

輸入命令,pyinstaller -F 絕對路徑。(-F表示覆蓋打包,如果多次進行修改並打包,執行這個命令就是最新的)

pyinstaller -F X:\project\myProject\TransferToDecimal.py

執行完命令之後會生成幾個資料夾,pycache,dist和build。

可能出現的問題

但是我就遇到了這樣的問題,在執行完打包命令之後在py檔案所在目錄中只生成了一個_pycache_資料夾,並沒有所謂的dist和build資料夾,於是我用各種方法解決,解除安裝重新安裝pyinstaller,重新執行打包命令之後還是同樣的問題。

仔細看了命令執行過程中的內容,發現了一個路徑,順著這個路徑找到了這個資料夾(C:\Users\Qxy),發現不是沒有生成dist和build,而是生成在其它資料夾中了。

執行exe程式

build和_pycache_中的檔案先不用管,關鍵是dist中可執行的exe程式。(圖是改了圖示之後擷取的,更換圖示的方法在下一小節...)

雙擊就可以直接執行,這樣在沒有python的環境下,也依然可以運行了。

更換exe程式圖示

如果不喜歡預設的圖示,想要換成自己喜歡的,那麼需要準備字尾為.ico的圖片。在網頁上就可以線上轉圖片格式,很方便。
執行命令:pyinstaller -F -i 圖片名.ico 檔名.py。(-i表示更換圖示)

pyinstaller -F -i X:\yus.ico X:\project\myProject\TransferToDecimal.py

去掉dos視窗

因為我打包的是一個圖形介面,發現每次執行程式的時候,都會顯示dos視窗,想取消掉,就執行-w命令。再重新打包後,就會只顯示圖形介面,沒有dos視窗了。

pyinstaller -F -w X:\yus.ico X:\project\myProject\TransferToDecimal.py

pyinstaller引數

附上pyinstaller常用的引數列表。

引數含義
-F 打包單個檔案,生成結果是一個exe檔案,如果程式碼都寫在一個.py檔案時使用,專案有多個檔案時不要使用
-i 指定程式的圖示
-w 不顯示dos視窗(命令列)
-c 顯示dos視窗(命令列)
-h 顯示幫助
-v 顯示版本號
--key=密碼 加密打包

ps:雖然只是一個非常小(2kb)的程式,打包完之後居然也有10m。

pyinstall打包後出現路徑問題,獲取excel檔案路徑錯誤,解決方法:

#獲取當前路徑

w1 = os.path.dirname(os.path.realpath(sys.executable))

#獲取上一級路徑

w2 = os.path.dirname(os.path.dirname(os.path.realpath(system.executable)))