使用PyInstaller打包成可在Windows執行的.exe檔

更新 發佈閱讀 6 分鐘


【建置環境說明】

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

【打包前提說明】

需先完成 python kivy app 開發(可參考:APP開發),本機環境測試ok,本篇範例在專案資料夾裡有main.py、countinmind.kv、CountInMindIco.ico以及font資料夾(裡面有TW-Kai-98_1.ttf文字檔案)

【本篇說明】

為了能將完成的作品直接在Windows電腦上安裝使用,所以要打包成Windows能執行的.exe執行檔案。本篇是使用PyInstaller打包,PyInstaller是一個用於將Python程式打包成獨立可執行檔案的工具。

打包步驟:

1.安裝或更新 PyInstaller,使用 PyInstaller作為打包工具,在終端機(CMD)輸入以下指令: pip install pyinstallerpip install --upgrade pyinstaller

2.先新增一個空白資料夾,可任意命名,然後將其放在main.py檔案旁邊。(我命名為 countinmind_exe)

3.開啟命令列 shell或是命令提示字元 CMD(我使用的是 vscode終端機)導航至剛剛(step 2)建立的資料夾。於是,我在vscode中輸入:cd C:\Users\CFuser\Desktop\python\Kivy\CountInMindApp\countinmind_exe

raw-image

4.再新增一個資料夾(我命名為 countinmind_win11),將先前開發專案中打包所需的檔案複製到此資料夾中。示範:複製main.py、countinmind.kv、CountInMindIco.ico以及font資料夾,裡面放著套用文字的.ttf檔案。

若要為應用程式新增圖標,可將 .ico 檔案也複製到此資料夾中。(可以在www.convertico.com將圖片轉換為 .ico 檔案)

raw-image

5.然後在 shell 或是CMD、vscode中輸入以下指令:python -m PyInstaller --name YourAppName -w --icon TheDirectoryToYour.icoFile (空格)TheDirectoryToYour.pyFile,並按 Enter 鍵。

對照:

例如我的是: python -m PyInstaller --name CountInMind -w --icon C:\Users\CFuser\Desktop\python\Kivy\CountInMindApp\countinmind_win11\CountInMindIco.ico C:\Users\CFuser\Desktop\python\Kivy\CountInMindApp\countinmind_win11\main.py

raw-image

6.完成後,會顯示completed successfully。現在轉到創建的資料夾(step 2),右鍵點擊該.spec文件,然後用記事本(或任何其他文字編輯器)打開它

raw-image

7.當打開 .spec 檔案時,它應該如下圖,現在在頂部空白處新增:from kivy_deps import sdl2, glew及block_cipher = None

raw-image

8.現在找到該段內容 coll = COLLECT(exe, 並新增以下:Tree('ThePathToTheFolderYouMadeInStep4'),。

例如:coll = COLLECT(exe, Tree('C:\Users\CFuser\Desktop\python\Kivy\CountInMindApp\countinmind_win11\'),

raw-image

9.並在其下方找到該a.datas 那段,並在下方添加:*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)], 使其位於 a.datas,和 strip=False之間

raw-image

10.儲存檔案並關閉。最後,返回shell 或CMD 或終端機並輸入:python -m PyInstaller YourAppName.spec並按 Enter 鍵。例如:python -m PyInstaller CountInMind.spec

raw-image

11.有時候會顯示:WARNING: The output directory "YourDirectory" and ALL ITS CONTENTS will be REMOVED! Continue? (y/N),只要輸入 y 然後按enter

12.建置完成後, .exe 檔案將位於Step 2建立的資料夾中。我的位於: C:\Users\CFuser\Desktop\python\Kivy\CountInMindApp\countinmind_exe\dist\CountInMind

raw-image


【本篇小結】

接下來篇章會分享打包時的問題及解決方法。

【本篇結束】

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


留言
avatar-img
留言分享你的想法!
avatar-img
艾肯比工程師
2會員
55內容數
主要分享應用程式開發過程、遭遇困難及解決技巧,提供給自學或獨立開發者做為參考,希望能對您們有所幫助。
艾肯比工程師的其他內容
2025/06/12
2025/06/12
2025/06/09
本篇分享Flask 專案初始化並推送至 GitHub的流程,有提供詳細的指令及步驟供參考。
Thumbnail
2025/06/09
本篇分享Flask 專案初始化並推送至 GitHub的流程,有提供詳細的指令及步驟供參考。
Thumbnail
2025/06/05
第五步部署流程,分享安裝 Git工具 及提供 Flask專案資料夾目錄放置路徑。
Thumbnail
2025/06/05
第五步部署流程,分享安裝 Git工具 及提供 Flask專案資料夾目錄放置路徑。
Thumbnail
看更多
你可能也想看
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
蝦皮分潤計畫讓我在分享旅遊文章時,也能透過推薦好物累積被動收入,貼補旅行基金。這篇文章,除了介紹計畫的操作亮點與心得,也分享我最常應用的案例:「旅行必備小物 TOP5」,包含行李鎖、免洗內衣褲、分裝瓶、折疊衣架與真空壓縮袋,幫助出國打包更輕鬆。想同時記錄旅行、分享好物又創造額外收入的你,千萬別錯過!
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
Thumbnail
想增加被動收入?加入蝦皮分潤計畫是輕鬆上手的好方法!本文提供完整教學,包含申請流程、賺取分潤技巧,以及實際使用心得分享,助你輕鬆獲得額外收入。
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
在離線環境需要安裝Python套件時就相當的麻煩,需要先下載好套件包,在打指令安裝,若套件數量一多時就會相當麻煩。 本文將介紹如何利用兩行指令快速的安裝整個資料夾的套件。
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
介紹如何用assign函數在Python中建立新欄位
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
什麼是Python python是電腦程式語言的一種,如同python官方網站上的介紹 "Python是一種程式語,可讓你更快速地工作並更有效的整合系統"。簡單地說,就是你可用python這個程式語言去告訴電腦你想要作什麼,讓電腦來幫你完成你要作的事情。
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
Thumbnail
本篇內容介紹如何使用 Python中的 moviepy library 簡單的剪影片。 先安裝moviepy library , 用pip install moviepy , 可參考官方文件。 要剪的影片和python檔要在同個資料夾中,若不在同個位置要用 os library 更換路徑
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
INI 檔案是一種配置檔案格式,常用於保存設定資料和組態資訊。 它使用簡單的鍵值對結構來組織資料,通常用於程式、應用程式或操作系統中的配置和初始化設定。 INI 檔案每個鍵值對包含一個名稱(鍵)和對應的值。 基本的檔案格式如下: [Section1] Key1 = Value1 Key2 =
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
在Python中,import是一個關鍵字,用於將其他模組或套件中的程式碼引入到當前的程式中以供使用。 這個關鍵字允許你在你的程式中使用其他地方定義的變數、函式和類等。 當你使用import時,Python會搜索指定模組或套件的位置,並將其中的程式碼載入到你的程式中,這樣你就可以在程式中使用它們
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
情況描述 我們在「【🔒 Python 先修班】教你親手打包專屬套件庫的手作課(pip install…)」有提到如何打包Python讓自己的程式變成套件, 讓其他人可以用pip install的方式進行安裝,😲 But… 我們實際上打包後, 發現到引用的檔案都有被打包進去,但目錄卻未被打包
Thumbnail
幾個步驟,就能成功在MacBook Air M1安裝Python3和Django!
Thumbnail
幾個步驟,就能成功在MacBook Air M1安裝Python3和Django!
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
Thumbnail
設計程式來讀取欲傳送訊息之參數txt檔案,再利用程式自動傳出訊息至LINE群組。能簡易使用於任何場合。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News