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