如果想使用 Python 語言編寫圖形界面程序,那么有不少的框架可以提供支持,比如 Tkinter、Qt for Python、WxPython等等。
不過這些框架都是只能創建桌面圖形界面程序,比如 Windows、Linux 和 macOS。如果我們想要創建 IOS 或 Android 等平台的移動應用APP,它們就無能為力了。那么 Python 能不能寫移動應用APP呢?實際上是可以的。目前據「州的先生」所了解,Kivy 和 BeeWare 都宣稱「一次編寫,處處部署」,基於這些個框架編寫的圖形界面程序,都能夠打包為全平台的應用程序,比如:Windows、Linux、macOS、Android、IOS。今天,咱們就嘗試使用一下 BeeWare 這個框架,編寫一個圖形界面程序,然后打包為一個安卓APP。開始吧!
BeeWare 是一個基於 Python 構建的跨平台應用開發框架,其宣傳「Write once. Deploy everywhere.」
能夠讓 Python 編寫的圖形程序在 iOS, Android, Windows, MacOS, Linux, Web, 和 tvOS 上運行,看起來是很強大的。
安裝
根據 BeeWare 的文檔說明,在 Windows 上使用,我們首先需要安裝 Git 和 WiX Toolset,根據給出的網址,下載安裝即可。然后,我們使用 pip 工具安裝 BeeWare:
pip install briefcase
創建應用
BeeWare 安裝完成之后,我們就可以通過briefcase
命令在命令行終端進行 BeeWare 應用的管理,比如新建、運行、構建、打包等等。我們先使用命令briefcase new
創建一個應用。命令輸入之后,會讓我們輸入「應用的正式名稱」、「應用程序名稱」、「域名」、「項目名稱」等等信息,在這里出於演示,我們統統使用默認值。
輸入完成之后,BeeWare會開始創建應用,創建完成之后,會有如下提示:
同時目錄下多出了一個與應用程序名稱同名的目錄:
我們的程序的主要代碼都將在 app.py 里面編寫,默認 app.py 文件內已經有一個demo代碼,我們可以直接運行項目:
briefcase dev
在命令行輸入上述命令,會生成一個如下圖所示的窗口:
打包為Windows程序
出於演示,在這里州的先生不對 BeeWare 的圖形界面控件進行過多的演示,直接使用了它的demo。如果我們需要將編寫好的圖形程序打包成 Windows桌面程序,那么可以執行下面的步驟:首先,創建應用的腳手架:
briefcase create
運行命令,將會生成一些預配置文件,然后下載依賴的包。完成之后,項目目錄下會生成一個 Windows 的目錄,如下圖所示:
然后,構建應用:
briefcase build
接着,運行構建的應用:
briefcase run
最后,打包應用:
briefcase package
打包完成后,./Windows 目錄下會生成一個 .msi 的二進制安裝文件:
我們雙擊運行它,會出現常見的Windows程序的安裝界面:
安裝完成之后,可以在Windows的應用程序列表中看到它:
點擊它,就會打開我們之前用命令運行的程序界面;
打包為安卓APP
如果我們要將應用打包為安卓APP,過程也是類似的。
首先,創建應用的安卓腳手架:
briefcase create android
接着,構建安卓應用:
briefcase build android
然后,我們運行一下構建好的安卓應用:
briefcase run android
在這里會讓我們選擇設備,可以選擇 BeeWare 提供的安卓虛擬機或者是在電腦上連接自己的手機,在這里,我們選擇安卓虛擬機:
最后,打包安卓應用:
briefcase package android
打包完成之后,我們可以在 .\android\gradle\Hello World\app\build\outputs 找到打包好的文件:
BeeWare 提供了兩種打包好的文件,一種是用於上架Google Play 的.aab 格式文件,
一種是用於調試的 .apk 文件:
apk 文件咱們的手機可以直接安裝,所以就用QQ把它傳到手機上:
QQ內可以識別安裝:
安裝它
顯示程序內容:
這樣,我們就把Python編寫的圖形程序直接打包為了安卓APP。IOS的打包流程也是類似,大家可以參考官網文檔嘗試一下。有問題歡迎留言交流討論~
BeeWare 集成了一個自己研發的 GUI 框架 toga ,這是 BeeWare 支持的 GUI 框架中對全平台適配最好一個,如果你希望更詳細地了解 BeeWare 創建圖形界面程序