
- Kivy 教程
- Kivy - 首頁
- Kivy 基礎
- Kivy - 快速入門
- Kivy - 安裝
- Kivy - 架構
- Kivy - 檔案語法
- Kivy - 應用
- Kivy - Hello World
- Kivy - 應用生命週期
- Kivy - 事件
- Kivy - 屬性
- Kivy - 輸入
- Kivy - 行為
- Kivy 按鈕
- Kivy - 按鈕
- Kivy - 按鈕事件
- Kivy - 按鈕顏色
- Kivy - 按鈕大小
- Kivy - 按鈕位置
- Kivy - 圓形按鈕
- Kivy - 停用按鈕
- Kivy - 圖片按鈕
- Kivy 小部件
- Kivy - 小部件
- Kivy - 標籤
- Kivy - 文字輸入
- Kivy - 畫布
- Kivy - 線
- Kivy - 複選框
- Kivy - 下拉列表
- Kivy - 視窗
- Kivy - 滾動檢視
- Kivy - 輪播圖
- Kivy - 滑塊
- Kivy - 圖片
- Kivy - 彈出視窗
- Kivy - 開關
- Kivy - 微調器
- Kivy - 分隔器
- Kivy - 進度條
- Kivy - 氣泡
- Kivy - 標籤面板
- Kivy - 散點圖
- Kivy - 手風琴
- Kivy - 檔案選擇器
- Kivy - 顏色選擇器
- Kivy - 程式碼輸入
- Kivy - 模態檢視
- Kivy - 切換按鈕
- Kivy - 相機
- Kivy - 樹檢視
- Kivy - reStructuredText
- Kivy - 動作欄
- Kivy - 影片播放器
- Kivy - 模板檢視
- Kivy - 虛擬鍵盤
- Kivy - 觸控漣漪
- Kivy - 音訊
- Kivy - 影片
- Kivy - 拼寫檢查
- Kivy - 效果
- Kivy - 輸入錄製器
- Kivy - OpenGL
- Kivy - 文字
- Kivy - 文字標記
- Kivy - 設定
- Kivy 佈局
- Kivy - 佈局
- Kivy - 浮動佈局
- Kivy - 網格佈局
- Kivy - 箱式佈局
- Kivy - 堆疊佈局
- Kivy - 錨點佈局
- Kivy - 相對佈局
- Kivy - 頁面佈局
- Kivy - 迴圈佈局
- Kivy - 佈局巢狀
- Kivy 高階概念
- Kivy - 配置物件
- Kivy - 圖集
- Kivy - 資料載入器
- Kivy - 快取管理器
- Kivy - 控制檯
- Kivy - 動畫
- Kivy - 多筆畫
- Kivy - 時鐘
- Kivy - SVG
- Kivy - UrlRequest
- Kivy - 剪貼簿
- Kivy - 工廠
- Kivy - 手勢
- Kivy - 語言
- Kivy - 圖形
- Kivy - 繪圖
- Kivy - 打包
- Kivy - Garden
- Kivy - 儲存
- Kivy - 向量
- Kivy - 工具函式
- Kivy - 檢查器
- Kivy - 工具
- Kivy - 日誌記錄器
- Kivy - 幀緩衝區
- Kivy 應用和專案
- Kivy - 繪圖應用
- Kivy - 計算器應用
- Kivy - 計時器應用
- Kivy - 相機處理
- Kivy - 圖片檢視器
- Kivy - 貝塞爾曲線
- Kivy - 畫布壓力測試
- Kivy - 圓形繪製
- Kivy - 小部件動畫
- Kivy - 其他
- Kivy 有用資源
- Kivy - 快速指南
- Kivy - 有用資源
- Kivy - 討論
Kivy - 打包
“打包”是指建立一個應用程式原始碼的單個包,以及所有依賴項,包括庫、資料檔案、配置檔案等。
開發 Kivy 應用時,需要各種資源。例如,常見的需求是 sdl2 包或 glew 包。安裝 Kivy 時,也會安裝這些依賴項。
kivy-deps.glew kivy-deps.gstreamer kivy-deps.sdl2
到目前為止,你一直在已經安裝了 Python 執行時的機器上執行 Kivy 應用。但是,當需要將此應用程式移植到另一臺未安裝 Python 的機器時,你需要構建一個包含程式以及 Python 執行時和依賴項的包。
PyInstaller 包可以幫助你構建應用程式的可再發行包。使用者無需安裝 Python、Kivy 或任何其他庫即可執行該應用程式。
要構建這樣的可再發行包,你應該首先使用 PIP 命令在當前 Kivy 環境中安裝 PyInstaller。
pip3 install -U pyinstaller
下一步是收集一個或多個 Python 原始檔(副檔名為 .py),以及其他資源,例如影像檔案等,到一個單獨的資料夾中。
在本練習中,我們將為 ImageButton 應用構建一個包。此應用的檔案儲存在 imgbtn 資料夾中。
Directory of C:\kivyenv\imgbtn forward.png main.py pause.png play.png previous.png
建立另一個資料夾 ImangBtnApp,它最終將儲存可再發行包。在資料夾內,執行以下命令:
(kivyenv) C:\kivyenv\ImageBtnApp>pyinstaller -n ImageBtnApp c:\kivyenv\imgbtn\main.py
Kivy 應用有很多依賴項。因此,收集所有依賴項可能需要一段時間。最終,ImageButtonApp 資料夾將包含:
Directory of C:\kivyenv\ImageBtnApp 27-07-2023 21:25 <DIR> . 27-07-2023 21:07 <DIR> .. 27-07-2023 21:25 <DIR> build 27-07-2023 21:28 <DIR> dist 27-07-2023 21:25 970 ImageBtnApp.spec
dist 資料夾是可再發行資料夾,其中包含 EXE 檔案“ImageBtnApp.exe”以及所需的 DLL 庫,例如 sdl2 等。
有一個與應用程式同名的 spec 檔案。我們需要編輯 spec 檔案以新增依賴項鉤子,以便正確構建 exe。
使用你喜歡的編輯器開啟 spec 檔案,並在 spec 檔案開頭新增以下幾行:
from kivy_deps import sdl2, glew
向下滾動 spec 檔案,找到 COLLECT 部分,併為每個依賴項路徑新增一個 Tree 物件。例如,`*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)]`。
coll = COLLECT( exe, Tree('c:\\kivyenv\\imgbtn\\'), a.binaries, a.zipfiles, a.datas, *[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)], strip=False, upx=True, upx_exclude=[], name='ImageBtnApp', )
現在,我們使用以下命令在 ImageBtnApp 中構建 spec 檔案:
python -m PyInstaller ImageBtnApp.spec
編譯後的包將位於 ImageBtnApp\dist\ImageBtnApp 目錄中。
你還可以使用 Pyinstaller 命令列語法的 -onetime 開關將執行時、應用程式程式碼和依賴項放在單個檔案中(而不是可再發行包中):
pyinstaller --onefile -n ImageBtnApp
要構建面向 Android 的可再發行包,你需要使用 Buildozer 工具。它將下載並設定 python-for-android 的所有先決條件,包括 android SDK 和 NDK,然後構建一個可以自動推送到裝置的 apk。
導航到你的專案目錄並執行:
buildozer init
這將建立一個 buildozer.spec 檔案,用於控制你的構建配置。使用你的應用程式名稱等編輯該檔案。你可以設定變數來控制傳遞給 python-for-android 的大部分或所有引數。最後,插入你的 Android 裝置並執行:
buildozer android debug deploy run
以構建、推送並在你的裝置上自動執行 APK。