在你的 Android 手機上創(chuàng)建和運行 Python 應用(python程序在android手機上運行)
使用 Termux 和 Flask 在你的移動設備上創(chuàng)建、開發(fā)和運行一個網(wǎng)頁應用。
? 來源:linux.cn ? 作者:Phani Adabala ? 譯者:geekpi ?
(本文字數(shù):2923,閱讀時長大約:4 分鐘)
學習和使用 Python 是很有趣的。由于它越來越受歡迎,有越來越多的方式可以讓計算世界比現(xiàn)在更好。
想象一下,只需一個 Android 移動設備和開源工具,就可以構建和運行一個 Python 應用,無論是開發(fā)一個命令行工具從互聯(lián)網(wǎng)上獲取你最喜歡的文章,還是啟動一個直接在掌上設備運行的網(wǎng)頁服務器,所有這些都可以實現(xiàn)。這將完全改變你對移動設備的看法,將它從一個僅僅讓你消費內容的設備變成一個幫助你發(fā)揮創(chuàng)造力的設備。
在本文中,我將演示運行和測試一個簡單的 Python 應用所需的所有的工具、軟件包、步驟和各種零零散散的東西。我使用 Flask 框架 來創(chuàng)建一個簡單的 “Hello, World!” 應用,并在一個簡單而強大的網(wǎng)頁服務器上運行。最棒的是,這一切都發(fā)生在手機上。不需要筆記本或臺式機。
在 Android 上安裝 Termux
首先, 安裝 Termux 應用程序 。Termux 是一個強大的終端仿真器,它提供了所有最流行的 Linux 命令,加上數(shù)百個額外的包,以便于安裝。它不需要任何特殊的權限,你可以使用默認的 Google Play 商店或開源應用倉庫 F-Droid 來安裝。
安裝 Termux 后,啟動它并使用 Termux 的 pkg 命令執(zhí)行一些必要的軟件安裝。
訂閱附加倉庫 root-repo:
$ pkg install root-repo
執(zhí)行更新,使所有安裝的軟件達到最新狀態(tài)。
$ pkg update
最后,安裝 Python:
$ pkg install python
安裝和自動配置完成后,就可以構建你的應用了。
在 Android 上構建一個 Android 應用
現(xiàn)在你已經(jīng)安裝了一個終端,你可以在很大程度上像使用另一臺 Linux 電腦一樣使用你的 Android 手機。這很好地展示了終端到底有多強大。
首先創(chuàng)建一個項目目錄:
$ mkdir Source$ cd Source
接下來,創(chuàng)建一個 Python 虛擬環(huán)境。這是 Python 開發(fā)者的常見做法,它有助于讓你的 Python 項目獨立于你的開發(fā)系統(tǒng)(在本例中是你的手機)。在你的虛擬環(huán)境中,你將能夠安裝特定于你應用的 Python 模塊。
$ python -m venv venv
激活你的新虛擬環(huán)境(注意,開頭的兩個點用空格隔開)
$ . ./venv/bin/activate(env)$
請注意你的 shell 提示符現(xiàn)在以 (env) 開頭,表示你在虛擬環(huán)境中。
現(xiàn)在使用 pip 安裝 Flask Python 模塊。
(env) $ pip install flask
在 Android 上寫 Python 代碼
你已經(jīng)準備好了。現(xiàn)在你需要為你的應用編寫代碼。
要做到這一點,你需要有經(jīng)典文本編輯器的經(jīng)驗。我使用的是 vi。如果你不熟悉 vi,請安裝并試用 vimtutor,它(如其名稱所暗示的)可以教你如何使用這個編輯器。如果你有其他你喜歡的編輯器,如 jove、jed、joe 或 emacs,你可以安裝并使用其中一個。
現(xiàn)在,由于這個演示程序非常簡單,你也可以直接使用 shell 的 heredoc 功能,它允許你直接在提示符中輸入文本。
(env)$ cat << EOF >> hello_world.py> from flask import Flask> app = Flask(__name__)>> @app.route('/')> def hello_world():> return 'Hello, World!'> EOF(env)$
這只有六行代碼,但有了它,你可以導入 Flask,創(chuàng)建一個應用,并將傳入流量路由到名為 hello_world 的函數(shù)。
現(xiàn)在你已經(jīng)準備好了網(wǎng)頁服務器的代碼?,F(xiàn)在是時候設置一些 環(huán)境變量 ,并在你的手機上啟動一個網(wǎng)頁服務器了。
(env) $ export FLASK_APP=hello_world.py(env) $ export FLASK_ENV=development(evn) $ python hello_world.py
啟動應用后,你會看到這條消息:
serving Flask app… running on http://127.0.0.1:5000/
這表明你現(xiàn)在在 localhost(也就是你的設備)上運行著一個微型網(wǎng)頁服務器。該服務器正在監(jiān)聽來自 5000 端口的請求。
打開你的手機瀏覽器并進入到 http://localhost:5000,查看你的網(wǎng)頁應用。
你并沒有損害手機的安全性。你只運行了一個本地服務器,這意味著你的手機不接受來自外部世界的請求。只有你可以訪問你的 Flask 服務器。
為了讓別人看到你的服務器,你可以在 run 命令中加入 –host=0.0.0.0 來禁用 Flask 的調試模式。這會打開你的手機上的端口,所以要謹慎使用。
(env) $ export FLASK_ENV=””(env) $ flask run –host=0.0.0.0
按 Ctrl C 停止服務器(使用特殊的 Termux 鍵來作為 Ctrl 鍵)。
決定下一步怎么做
你的手機可能不是一個嚴肅的網(wǎng)頁應用的理想服務器平臺,但這個例子證明了可能性是無限的。你可能會在 Android 手機上編程,只是因為這是一種方便的實踐方式,或者因為你有一個令人興奮的本地化網(wǎng)頁應用的新想法,或者你只是碰巧使用 Flask 應用來完成自己的日常任務。正如愛因斯坦曾經(jīng)說過的“想象力比知識更重要”,對于任何一個新手編碼者,或者一個經(jīng)驗豐富的 Linux 或 Android 愛好者來說,這是一個有趣的小項目。它可以擴展到無窮的層次,所以讓你的好奇心接手,并做出一些令人興奮的東西!
via: opensource.com
作者: Phani Adabala 選題: lujun9972 譯者: geekpi 校對: wxy
本文由 LCTT 原創(chuàng)編譯, Linux中國 榮譽推出