Anaconda是一個Python發行版,提供大量現成套件。並能建立虛擬環境,管理多個Python版本使其共存於同一個系統上。
Android手機寫Python程式需要Anaconda環境的話,在Termux裡安裝是個可行的選項。例如下圖是Android跑Python OpenCV套件的示例。
不過Android手機大部份是aarch64 (arm64)架構,Anaconda官方支援的"ARM"架構裝置為AWS Graviton,以及armv7l (32位元) 的Raspberry Pi,精簡版的miniconda也是如此,裝了會出現各種錯誤。
所以aarch64架構的裝置要改裝"miniforge", 它跟miniconda一樣是精簡版的Anaconda,指令用法一樣,支援更多架構的Linux系統。
1. 安裝Termux與Linux環境
初始化Termux
接著選擇要直接在Termux環境安裝miniforge,或是建立Proot Linux?由於Termux的Python版本是滾動更新的(無法降級),我個人偏好建一個獨立的Proot Debian環境,這樣才比較方便安裝不同版本的Python。
2. 安裝miniforge3
- 登入Proot Debian,使用Root帳號。
|
|
- 安裝前置依賴套件。Debian 11的Python版本是3.9,由於Anaconda能自動下載Python,我們不需要再手動安裝其他版本的Python。
|
|
- Proot預設會使用Termux的Python,因此需要用以下指令指定系統暫時使用Proot內部的Python:
|
|
- 至miniforge儲存庫,取得安裝指令稿網址,下載執行
|
|
執行後Enter,使用箭頭上下移動,輸入yes同意授權條款。
並將miniforge安裝至
~/root/miniforge
,待其安裝完成。安裝完成後會問要不要自動啟動環境,也就是登入Proot便進入conda。輸入
yes
登出Proot,再重新登入Proot
|
|
會發現提示符出現括號
(base)
,代表conda環境已自動啟動。輸入conda deactivate
退出conda環境。若想改成手動進入conda環境,輸入
conda config --set auto_activate_base false
停用自動進入conda環境。
3. 使用conda指令
進入conda環境後,可直接用conda install
或pip
安裝Python套件。在conda環境裡會自動使用conda所安裝的Python版本。
conda好用的功能便是建立多重虛擬環境了。假設現在要建立舊版Python 3.6的環境,輸入以下指令:
|
|
進入/離開虛擬環境
|
|
這樣便可以安裝限定Python 3.6才能裝的套件了。
4. 寫個簡單的OpenCV程式
這是個偵測人臉的程式,不過,我想來點好玩的:偵測動畫人物的人臉,採用lbpcascade_animeface的專案。
例如這裡有一張少女終末旅行的圖片,我們要將她們的臉孔標記出來。
- 建立conda環境
|
|
- 安裝需要的套件
|
|
- 用VIM新增檔案
|
|
- 參考原作者的寫法撰寫程式碼,讀取
input.jpg
,標記臉孔後輸出為output.jpg
。
|
|
- 如果問說要怎麼把圖片放到Proot的目錄,別忘了手機內部儲存空間是掛載在Proot的
/sdcard
,將圖片移動過來即可:
|
|
- 執行寫好的Python程式
|
|
- 欲查看結果,將圖片移動到手機內部儲存空間
|
|
- 成品