热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

在你的Android手机上创建和运行Python应用

使用Termux和Flask在你的移动设备上创建、开发和运行一个网页应用。学习和使用Python是很有趣的。由于它越来越受欢迎,有越来越多的方式可以让计算世界比现在更好。想象一下,


使用 Termux 和 Flask 在你的移动设备上创建、开发和运行一个网页应用。


学习和使用 Python 是很有趣的。由于它越来越受欢迎,有越来越多的方式可以让计算世界比现在更好。


想象一下,只需一个 Android 移动设备和开源工具,就可以构建和运行一个 Python 应用,无论是开发一个命令行工具从互联网上获取你最喜欢的文章,还是启动一个直接在掌上设备运行的网页服务器,所有这些都可以实现。这将完全改变你对移动设备的看法,将它从一个仅仅让你消费内容的设备变成一个帮助你发挥创造力的设备。


在本文中,我将演示运行和测试一个简单的 Python 应用所需的所有的工具、软件包、步骤和各种零零散散的东西。我使用 Flask 框架 来创建一个简单的 “Hello, World!” 应用,并在一个简单而强大的网页服务器上运行。最棒的是,这一切都发生在手机上。不需要笔记本或台式机。


在 Android 上安装 Termux


首先, 安装 Termux 应用程序 。Termux 是一个强大的终端仿真器,它提供了所有最流行的 Linux 命令,加上数百个额外的包,以便于安装。它不需要任何特殊的权限,你可以使用默认的  Google Play 商店或开源应用仓库  F-Droid 来安装。



安装 Termux 后,启动它并使用 Termux 的 pkg 命令执行一些必要的软件安装。


订阅附加仓库 root-repo


$ pkg install root-repo

执行更新,使所有安装的软件达到最新状态。


$ pkg update

最后,安装 Python:


$ pkg install python


安装和自动配置完成后,就可以构建你的应用了。


在 Android 上构建一个 Android 应用


现在你已经安装了一个终端,你可以在很大程度上像使用另一台 Linux 电脑一样使用你的 Android 手机。这很好地展示了终端到底有多强大。


首先创建一个项目目录:


$ mkdir Source
$ cd Source

接下来,创建一个 Python 虚拟环境。这是 Python 开发者的常见做法,它有助于让你的 Python 项目独立于你的开发系统(在本例中是你的手机)。在你的虚拟环境中,你将能够安装特定于你应用的 Python 模块。


$ python -m venv venv

激活你的新虚拟环境(注意,开头的两个点用空格隔开)


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

请注意你的 shell 提示符现在以 (env) 开头,表示你在虚拟环境中。


现在使用 pip 安装 Flask Python 模块。


(env) $ pip install flask

在 Android 上写 Python 代码


你已经准备好了。现在你需要为你的应用编写代码。


要做到这一点,你需要有经典文本编辑器的经验。我使用的是 vi 。如果你不熟悉  vi ,请安装并试用  vimtutor ,它(如其名称所暗示的)可以教你如何使用这个编辑器。如果你有其他你喜欢的编辑器,如  jovejedjoe 或  emacs ,你可以安装并使用其中一个。


现在,由于这个演示程序非常简单,你也可以直接使用 shell 的 heredoc 功能,它允许你直接在提示符中输入文本。


(env)$ cat <> hello_world.py
> from flask import Flask
> app = Flask(__name__)
>
> @app.route('/')
> def hello_world():
> return 'Hello, World!'
> EOF
(env)$

这只有六行代码,但有了它,你可以导入 Flask,创建一个应用,并将传入流量路由到名为 hello_world 的函数。



现在你已经准备好了网页服务器的代码。现在是时候设置一些 环境变量 ,并在你的手机上启动一个网页服务器了。


(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/

这表明你现在在 localhost(也就是你的设备)上运行着一个微型网页服务器。该服务器正在监听来自 5000 端口的请求。


打开你的手机浏览器并进入到 http://localhost:5000 ,查看你的网页应用。



你并没有损害手机的安全性。你只运行了一个本地服务器,这意味着你的手机不接受来自外部世界的请求。只有你可以访问你的 Flask 服务器。


为了让别人看到你的服务器,你可以在 run 命令中加入  --host=0.0.0.0 来禁用 Flask 的调试模式。这会打开你的手机上的端口,所以要谨慎使用。


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

Ctrl+C 停止服务器(使用特殊的  Termux 键来作为  Ctrl 键)。


决定下一步怎么做


你的手机可能不是一个严肃的网页应用的理想服务器平台,但这个例子证明了可能性是无限的。你可能会在 Android 手机上编程,只是因为这是一种方便的实践方式,或者因为你有一个令人兴奋的本地化网页应用的新想法,或者你只是碰巧使用 Flask 应用来完成自己的日常任务。正如爱因斯坦曾经说过的“想象力比知识更重要”,对于任何一个新手编码者,或者一个经验丰富的 Linux 或 Android 爱好者来说,这是一个有趣的小项目。它可以扩展到无穷的层次,所以让你的好奇心接手,并做出一些令人兴奋的东西!


via: https://opensource.com/article/20/8/python-android-mobile


作者: Phani Adabala 选题: lujun9972 译者: geekpi 校对: wxy


本文由 LCTT 原创编译,Linux中国荣誉推出





推荐阅读
  • 本文首先对信息漏洞的基础知识进行了概述,重点介绍了几种常见的信息泄露途径。具体包括目录遍历、PHPINFO信息泄露以及备份文件的不当下载。其中,备份文件下载涉及网站源代码、`.bak`文件、Vim缓存文件和`DS_Store`文件等。目录遍历漏洞的详细分析为后续深入研究奠定了基础。 ... [详细]
  • Python网络爬虫入门:利用urllib库进行数据抓取
    Python网络爬虫入门:利用urllib库进行数据抓取在数据科学和Web开发领域,Python凭借其简洁高效的特性成为首选语言。本文主要介绍了如何在Windows环境下使用Python的urllib库进行基本的网络数据抓取。考虑到命令行操作的不便,作者选择了Jupyter Notebook作为开发环境,不仅简化了配置过程,还提供了直观的数据处理和可视化功能。通过实例演示,读者可以轻松掌握urllib的基本用法,为深入学习网络爬虫技术打下坚实基础。 ... [详细]
  • 在Linux系统中,原本已安装了多个版本的Python 2,并且还安装了Anaconda,其中包含了Python 3。本文详细介绍了如何通过配置环境变量,使系统默认使用指定版本的Python,以便在不同版本之间轻松切换。此外,文章还提供了具体的实践步骤和注意事项,帮助用户高效地管理和使用不同版本的Python环境。 ... [详细]
  • 优化Oracle数据库日志功能的关闭方法与实践
    在优化Oracle数据库日志功能的过程中,关闭不必要的日志记录是一项重要任务。本文探讨了Oracle 11g中日志路径的配置和管理,特别是针对常用的警报日志(alert log)。通过合理配置 `alert_$ORACLE_SID.log` 文件,可以有效减少日志文件的大小和提高系统性能。此外,文章还介绍了如何通过调整参数和使用脚本自动化日志管理,进一步提升数据库的稳定性和维护效率。 ... [详细]
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 如何使用Python高效绘制矩形图形
    本文详细介绍了如何利用Python的Turtle库高效绘制矩形图形,适合初学者快速上手。通过具体示例代码,帮助读者理解Turtle库的基本绘图方法和技巧,同时探讨了在不同应用场景中绘制矩形的实际操作,为后续复杂图形的绘制打下坚实基础。 ... [详细]
  • 在Linux环境下安装Oracle 11g时,经常会遇到中文显示异常的问题。本文详细介绍了如何解决安装界面中的中文乱码现象,确保用户在安装过程中能够正确显示中文字符。具体步骤包括调整系统语言设置、配置环境变量以及修改Oracle安装文件等方法,以确保安装过程顺利进行。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • 深入解析:使用C++实现Python字节数组(struct)的高效处理方法 ... [详细]
  • Python数据分析入门指南:全面了解Python在数据科学中的应用 ... [详细]
  • 如何在Java中高效构建WebService
    本文介绍了如何利用XFire框架在Java中高效构建WebService。XFire是一个轻量级、高性能的Java SOAP框架,能够简化WebService的开发流程。通过结合MyEclipse集成开发环境,开发者可以更便捷地进行项目配置和代码编写,从而提高开发效率。此外,文章还详细探讨了XFire的关键特性和最佳实践,为读者提供了实用的参考。 ... [详细]
  • RancherOS 是由 Rancher Labs 开发的一款专为 Docker 设计的轻量级 Linux 发行版,提供了一个全面的 Docker 运行环境。其引导镜像仅 20MB,非常适合在资源受限的环境中部署。本文将详细介绍如何在 ESXi 虚拟化平台上安装和配置 RancherOS,帮助用户快速搭建高效、稳定的容器化应用环境。 ... [详细]
  • 在尝试访问一台长时间未使用的Ubuntu 16.04服务器时,遇到了中文字符显示为乱码的问题。此问题可能源于LC_CTYPE或LC_ALL环境变量配置不当。这些变量控制着系统对字符编码的处理方式,如果设置不正确,可能会导致非英文字符无法正常显示。为了确保系统的稳定性和兼容性,建议检查并调整这些环境变量的设置,以恢复正常的中文字符显示功能。 ... [详细]
  • 在Linux环境中,通过编写Shell脚本来实现自定义命令的创建与激活,能够极大地简化服务器上多个子系统的管理操作。例如,通过简单的命令如“tt”,即可快速查看各个应用程序的名称及其运行状态,从而提高系统维护的效率和便捷性。 ... [详细]
author-avatar
手机用户2702938564
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有