【簡易快速、輕量化打包方式】使用PyInstaller打包成可在Windows執行的.exe檔

更新 發佈閱讀 5 分鐘


【建置環境說明】

我的開發環境是win11,python是3.10.7版本,編碼的工具是Visual Studio Code(簡稱vscode)。

【打包前提說明】

☆☆其實 PyInstaller 有兩種打包方式,第一種是【直接用命令打包(不用編輯 .spec文件)】,第二種是【編輯.spec文件客製化打包】(可參考本篇:使用PyInstaller打包成可在Windows執行的.exe檔),今天介紹使用第一種,打包過程大約幾分鐘,比之前分享的方式更快速又簡化。

我使用 Python + PyQt5 開發程式,該程式取名為 AnyNote ,是一款極簡的便利貼應用程式,可支援多個便利貼、字體切換、顏色樣板與自動儲存筆記、開機自動讀取功能,在我的專案資料夾裡有main.py、icon.png(作為程式圖示)及fonts資料夾(裡面有字體檔案)。

raw-image

▲說明:專案資料夾目錄(C:\Users\使用者名稱\Desktop\python\project\PyQt5\AnyNote)


【本篇說明】

首先,需先安裝 PyInstaller這個工具,如果已經安裝過了,就執行更新,可在命令提示字元(CMD)、PowerShell 或是 VSCode 終端機輸入以下指令:

pip install pyinstallerpip install --upgrade pyinstaller


raw-image

▲說明:我是使用 VSCode 終端機輸入更新指令

接下來,依照以下選擇其中一個你習慣的方法輸入打包命令:

【方法1】在 VSCode 終端機直接輸入以下指令

pyinstaller --noconsole --onefile --icon=icon.png --add-data "fonts;fonts" --add-data "icon.png;." --add-data "backup;backup" main.py

【方法2】用 PowerShell 輸入並使用換行符號(反引號 `)

pyinstaller --noconsole --onefile --icon=icon.png `
--add-data "fonts;fonts" `
--add-data "icon.png;." `
--add-data "backup;backup" `
main.py

【方法3】用命令提示字元(CMD)輸入

pyinstaller --noconsole --onefile --icon=icon.png ^
--add-data "fonts;fonts" ^
--add-data "icon.png;." ^
--add-data "backup;backup" ^
main.py


【參數說明】

1.--noconsole : 打包成 GUI 應用,不會跳出黑色的命令提示字元

2.--onefile : 打包成單一的 exe

3.--icon=icon.ico : 設定應用程式圖示

4.--add-data "來源;目標"

5."fonts;fonts" : 把本機 fonts 資料夾打包到 exe 內,解壓到臨時資料夾( _MEIPASS )的 fonts/

6."icon.ico;." : 把 icon.ico 放在程式根目錄

7."backup;backup" : 打包一個空的 backup 資料夾(如果本機已有備份檔案,也會一起打包進去),解壓到使用者存取資料路徑裡 backup 資料夾


raw-image

▲說明:我是使用 VSCode 終端機輸入指令

就只要這樣!打包完成後在我的專案資料夾會產生 dist資料夾,裡面有 exe檔

raw-image

▲說明:終端機會出現打包完成的訊息

raw-image

▲說明:打包完成的exe 檔出現在 dist\ main.exe資料夾內


【本篇小結】

如果有多個檔案合併到同一個目錄結構裡,或是打包多個 entry points(多個 .py 生成多個 exe),可另外使用.spec文件來執行打包,若是像我一樣的打包情境(資料存取簡單、程式資源不多),就可以使用本篇方式,會發現到打包也可以這麼簡易又快速。

【本篇結束】

在自學路上遇到困難是很正常的事,只要堅持到底,相信就會有所成果,期勉大家一同努力。


留言
avatar-img
留言分享你的想法!
avatar-img
艾肯比工程師
3會員
60內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/10/15
在 Kivy裡面有很多用於佈局(版面)的類別, GridLayout中文翻譯是"網格佈局",是以二維行列方式來佈局,使用效果可以達到多欄多行的排列內容。
Thumbnail
2025/10/15
在 Kivy裡面有很多用於佈局(版面)的類別, GridLayout中文翻譯是"網格佈局",是以二維行列方式來佈局,使用效果可以達到多欄多行的排列內容。
Thumbnail
2025/10/10
在 Kivy裡面有很多用於佈局(版面)的類別,BoxLayout,在字面上翻譯是"盒子佈局",使用的效果是一格一格地將部件做排列,是比較規矩且有順序的佈局方式。
Thumbnail
2025/10/10
在 Kivy裡面有很多用於佈局(版面)的類別,BoxLayout,在字面上翻譯是"盒子佈局",使用的效果是一格一格地將部件做排列,是比較規矩且有順序的佈局方式。
Thumbnail
2025/09/30
在 Kivy裡面有很多用於佈局(版面)的類別,其中FloatLayout,在字面上翻譯是"浮點的佈局",使用的效果像是可隨意指定子部件排列位置。
Thumbnail
2025/09/30
在 Kivy裡面有很多用於佈局(版面)的類別,其中FloatLayout,在字面上翻譯是"浮點的佈局",使用的效果像是可隨意指定子部件排列位置。
Thumbnail
看更多
你可能也想看
Thumbnail
教大家如何使用 pip 備份 python 虛擬環境,並移植到其他電腦之中,詳細圖文解說
Thumbnail
教大家如何使用 pip 備份 python 虛擬環境,並移植到其他電腦之中,詳細圖文解說
Thumbnail
建置 vscode + python 開發環境的完整流程,詳細且附圖
Thumbnail
建置 vscode + python 開發環境的完整流程,詳細且附圖
Thumbnail
1. 詳細的 python 安裝流程(不需要 anaconda) 2. 透過「命令提示字元」啟動 python 的方法
Thumbnail
1. 詳細的 python 安裝流程(不需要 anaconda) 2. 透過「命令提示字元」啟動 python 的方法
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
PyInstaller 是一個強大的工具,可以將 Python 程式碼打包成獨立的可執行檔案,讓你的程式可以在沒有 Python 解釋器的情況下運行。這對於分享和分發你的 Python 應用程式非常有用。以下是使用 PyInstaller 的基本步驟:
Thumbnail
1. 安裝VS Code 1-1. Ctrl-K-T 換主題顏色 1-2. 加上基本插件(外掛) A. python擴展插件 關鍵字高亮, 智慧指令提示 Python解釋器切換 B. 使用中文插件 C. 使用Code runner才有三角形執行鈕
Thumbnail
1. 安裝VS Code 1-1. Ctrl-K-T 換主題顏色 1-2. 加上基本插件(外掛) A. python擴展插件 關鍵字高亮, 智慧指令提示 Python解釋器切換 B. 使用中文插件 C. 使用Code runner才有三角形執行鈕
Thumbnail
  環境佈置很重要!!所以按照這樣的方法下去安裝未來使用的時候才不會很麻煩,而且python會有很多外來模組要安裝,因此安裝路徑一定要設定好,未來找尋的時候才找的到,版本的差異沒有調整好也有可能用到最後有些會出現各種錯誤。所以環境佈置這真的很重要!!很重要!!很重要!!
Thumbnail
  環境佈置很重要!!所以按照這樣的方法下去安裝未來使用的時候才不會很麻煩,而且python會有很多外來模組要安裝,因此安裝路徑一定要設定好,未來找尋的時候才找的到,版本的差異沒有調整好也有可能用到最後有些會出現各種錯誤。所以環境佈置這真的很重要!!很重要!!很重要!!
Thumbnail
Python安裝、外部程式包安裝(pip install xxx)、Hello World 【安裝Python】 Visual Studio Code-Download 進入vscode(延伸模組) 安裝中文介面(輸入ch搜尋) 安裝 搜尋命令提示字元 命令提示字元打python 創建檔案
Thumbnail
Python安裝、外部程式包安裝(pip install xxx)、Hello World 【安裝Python】 Visual Studio Code-Download 進入vscode(延伸模組) 安裝中文介面(輸入ch搜尋) 安裝 搜尋命令提示字元 命令提示字元打python 創建檔案
Thumbnail
前言: 在前面的文裡講過,之前交付給工廠的程式都屬於原始碼,但是今天假設不想公開原始碼給其他人的話或是你要交付的對象是客戶,然後又礙於公司的一些規定所以不能給原始碼的時候,其實可以交付pyc檔。但在現今火箭都上外太空了,如果對方有心想要破解的話其實網路想也有很多教導反組譯的方式。 使用說明
Thumbnail
前言: 在前面的文裡講過,之前交付給工廠的程式都屬於原始碼,但是今天假設不想公開原始碼給其他人的話或是你要交付的對象是客戶,然後又礙於公司的一些規定所以不能給原始碼的時候,其實可以交付pyc檔。但在現今火箭都上外太空了,如果對方有心想要破解的話其實網路想也有很多教導反組譯的方式。 使用說明
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News