在你的 Android 手機(jī)上創(chuàng)建和運(yùn)行 Python 應(yīng)用(python程序在android手機(jī)上運(yùn)行)

在你的 Android 手機(jī)上創(chuàng)建和運(yùn)行 Python 應(yīng)用(python程序在android手機(jī)上運(yùn)行)

使用 Termux 和 Flask 在你的移動(dòng)設(shè)備上創(chuàng)建、開發(fā)和運(yùn)行一個(gè)網(wǎng)頁應(yīng)用。

? 來源:linux.cn ? 作者:Phani Adabala ? 譯者:geekpi ?

(本文字?jǐn)?shù):2923,閱讀時(shí)長(zhǎng)大約:4 分鐘)

學(xué)習(xí)和使用 Python 是很有趣的。由于它越來越受歡迎,有越來越多的方式可以讓計(jì)算世界比現(xiàn)在更好。

想象一下,只需一個(gè) Android 移動(dòng)設(shè)備和開源工具,就可以構(gòu)建和運(yùn)行一個(gè) Python 應(yīng)用,無論是開發(fā)一個(gè)命令行工具從互聯(lián)網(wǎng)上獲取你最喜歡的文章,還是啟動(dòng)一個(gè)直接在掌上設(shè)備運(yùn)行的網(wǎng)頁服務(wù)器,所有這些都可以實(shí)現(xiàn)。這將完全改變你對(duì)移動(dòng)設(shè)備的看法,將它從一個(gè)僅僅讓你消費(fèi)內(nèi)容的設(shè)備變成一個(gè)幫助你發(fā)揮創(chuàng)造力的設(shè)備。

在本文中,我將演示運(yùn)行和測(cè)試一個(gè)簡(jiǎn)單的 Python 應(yīng)用所需的所有的工具、軟件包、步驟和各種零零散散的東西。我使用 Flask 框架 來創(chuàng)建一個(gè)簡(jiǎn)單的 “Hello, World!” 應(yīng)用,并在一個(gè)簡(jiǎn)單而強(qiáng)大的網(wǎng)頁服務(wù)器上運(yùn)行。最棒的是,這一切都發(fā)生在手機(jī)上。不需要筆記本或臺(tái)式機(jī)。

在 Android 上安裝 Termux

首先, 安裝 Termux 應(yīng)用程序 。Termux 是一個(gè)強(qiáng)大的終端仿真器,它提供了所有最流行的 Linux 命令,加上數(shù)百個(gè)額外的包,以便于安裝。它不需要任何特殊的權(quán)限,你可以使用默認(rèn)的 Google Play 商店或開源應(yīng)用倉庫 F-Droid 來安裝。

在你的 Android 手機(jī)上創(chuàng)建和運(yùn)行 Python 應(yīng)用(python程序在android手機(jī)上運(yùn)行)

安裝 Termux 后,啟動(dòng)它并使用 Termux 的 pkg 命令執(zhí)行一些必要的軟件安裝。

訂閱附加倉庫 root-repo:

$ pkg install root-repo

執(zhí)行更新,使所有安裝的軟件達(dá)到最新狀態(tài)。

$ pkg update

最后,安裝 Python:

$ pkg install python

在你的 Android 手機(jī)上創(chuàng)建和運(yùn)行 Python 應(yīng)用(python程序在android手機(jī)上運(yùn)行)

安裝和自動(dòng)配置完成后,就可以構(gòu)建你的應(yīng)用了。

在 Android 上構(gòu)建一個(gè) Android 應(yīng)用

現(xiàn)在你已經(jīng)安裝了一個(gè)終端,你可以在很大程度上像使用另一臺(tái) Linux 電腦一樣使用你的 Android 手機(jī)。這很好地展示了終端到底有多強(qiáng)大。

首先創(chuàng)建一個(gè)項(xiàng)目目錄:

$ mkdir Source$ cd Source

接下來,創(chuàng)建一個(gè) Python 虛擬環(huán)境。這是 Python 開發(fā)者的常見做法,它有助于讓你的 Python 項(xiàng)目獨(dú)立于你的開發(fā)系統(tǒng)(在本例中是你的手機(jī))。在你的虛擬環(huán)境中,你將能夠安裝特定于你應(yīng)用的 Python 模塊。

$ python -m venv venv

激活你的新虛擬環(huán)境(注意,開頭的兩個(gè)點(diǎn)用空格隔開)

$ . ./venv/bin/activate(env)$

請(qǐng)注意你的 shell 提示符現(xiàn)在以 (env) 開頭,表示你在虛擬環(huán)境中。

現(xiàn)在使用 pip 安裝 Flask Python 模塊。

(env) $ pip install flask

在 Android 上寫 Python 代碼

你已經(jīng)準(zhǔn)備好了。現(xiàn)在你需要為你的應(yīng)用編寫代碼。

要做到這一點(diǎn),你需要有經(jīng)典文本編輯器的經(jīng)驗(yàn)。我使用的是 vi。如果你不熟悉 vi,請(qǐng)安裝并試用 vimtutor,它(如其名稱所暗示的)可以教你如何使用這個(gè)編輯器。如果你有其他你喜歡的編輯器,如 jove、jed、joe 或 emacs,你可以安裝并使用其中一個(gè)。

現(xiàn)在,由于這個(gè)演示程序非常簡(jiǎ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)建一個(gè)應(yīng)用,并將傳入流量路由到名為 hello_world 的函數(shù)。

在你的 Android 手機(jī)上創(chuàng)建和運(yùn)行 Python 應(yīng)用(python程序在android手機(jī)上運(yùn)行)

現(xiàn)在你已經(jīng)準(zhǔn)備好了網(wǎng)頁服務(wù)器的代碼?,F(xiàn)在是時(shí)候設(shè)置一些 環(huán)境變量 ,并在你的手機(jī)上啟動(dòng)一個(gè)網(wǎng)頁服務(wù)器了。

(env) $ export FLASK_APP=hello_world.py(env) $ export FLASK_ENV=development(evn) $ python hello_world.py

在你的 Android 手機(jī)上創(chuàng)建和運(yùn)行 Python 應(yīng)用(python程序在android手機(jī)上運(yùn)行)

啟動(dòng)應(yīng)用后,你會(huì)看到這條消息:

serving Flask app… running on http://127.0.0.1:5000/

這表明你現(xiàn)在在 localhost(也就是你的設(shè)備)上運(yùn)行著一個(gè)微型網(wǎng)頁服務(wù)器。該服務(wù)器正在監(jiān)聽來自 5000 端口的請(qǐng)求。

打開你的手機(jī)瀏覽器并進(jìn)入到 http://localhost:5000,查看你的網(wǎng)頁應(yīng)用。

在你的 Android 手機(jī)上創(chuàng)建和運(yùn)行 Python 應(yīng)用(python程序在android手機(jī)上運(yùn)行)

你并沒有損害手機(jī)的安全性。你只運(yùn)行了一個(gè)本地服務(wù)器,這意味著你的手機(jī)不接受來自外部世界的請(qǐng)求。只有你可以訪問你的 Flask 服務(wù)器。

為了讓別人看到你的服務(wù)器,你可以在 run 命令中加入 –host=0.0.0.0 來禁用 Flask 的調(diào)試模式。這會(huì)打開你的手機(jī)上的端口,所以要謹(jǐn)慎使用。

(env) $ export FLASK_ENV=””(env) $ flask run –host=0.0.0.0

按 Ctrl C 停止服務(wù)器(使用特殊的 Termux 鍵來作為 Ctrl 鍵)。

決定下一步怎么做

你的手機(jī)可能不是一個(gè)嚴(yán)肅的網(wǎng)頁應(yīng)用的理想服務(wù)器平臺(tái),但這個(gè)例子證明了可能性是無限的。你可能會(huì)在 Android 手機(jī)上編程,只是因?yàn)檫@是一種方便的實(shí)踐方式,或者因?yàn)槟阌幸粋€(gè)令人興奮的本地化網(wǎng)頁應(yīng)用的新想法,或者你只是碰巧使用 Flask 應(yīng)用來完成自己的日常任務(wù)。正如愛因斯坦曾經(jīng)說過的“想象力比知識(shí)更重要”,對(duì)于任何一個(gè)新手編碼者,或者一個(gè)經(jīng)驗(yàn)豐富的 Linux 或 Android 愛好者來說,這是一個(gè)有趣的小項(xiàng)目。它可以擴(kuò)展到無窮的層次,所以讓你的好奇心接手,并做出一些令人興奮的東西!


via: opensource.com

作者: Phani Adabala 選題: lujun9972 譯者: geekpi 校對(duì): wxy

本文由 LCTT 原創(chuàng)編譯, Linux中國(guó) 榮譽(yù)推出

點(diǎn)擊“了解更多”可訪問文內(nèi)鏈接

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號(hào)
公眾號(hào)
在線咨詢
分享本頁
返回頂部