怎么在安卓手机用Termux安装并运行Python脚本
详细介绍在安卓手机上使用Termux终端模拟器配置Python环境、管理包依赖并编写与运行Python脚本的完整步骤与避坑指南。
在安卓手机上运行 Python 脚本最直接、稳定的方案是使用 Termux。Termux 是一个基于 Android 系统的开源终端模拟器和 Linux 环境应用,不需要手机获取 Root 权限即可提供完整的 Linux 用户空间、官方软件包管理器以及标准 Python 3 运行时。本文将完整梳理客户端准备、环境配置、脚本编写与运行、第三方库安装以及长效后台运维的具体步骤与避坑细节。
前置准备:安装正确的 Termux 客户端版本
要在安卓手机上顺利搭建 Python 环境,第一步也是最容易踩坑的环节就是获取正确的 Termux 安装包。很多初学者习惯性地在 Google Play 商店或普通手机应用商店中搜索并下载 Termux,这会导致后续步骤几乎百分之百失败。
由于 Google Play 的 API 等级策略调整(要求 Target API 针对更高版本的 Android 进行限制,禁止应用在私有目录中执行未打包的二进制程序),Termux 官方早在 2020 年就已停止在 Google Play 商店更新。目前 Play 商店遗留的版本版本号停留在 0.101 附近,其内置的软件源地址早已失效。在该版本下运行任何包管理命令,都会提示 403 权限拒绝或 404 无法连接仓库。
安装完成后初次打开 Termux,应用会自动释放基础文件系统并初始化 Linux 环境。当屏幕出现以 $ 结尾的命令提示符时,说明终端环境已经就绪。
第一阶段:授予存储权限与初始化包管理器
Termux 是运行在独立应用沙箱内的,默认情况下无法读取手机相册、下载目录等公共存储中的文件。为了方便日后导入外部脚本或让 Python 输出文件到手机储存中,需要先完成存储权限映射。
1. 申请存储权限
在 Termux 窗口中直接输入以下命令并回车:
termux-setup-storage
手机屏幕此时会弹出系统的“允许访问照片和文件”授权弹窗,点击“允许”。执行成功后,Termux 会在当前用户的主目录(~/)下创建一个名为 storage 的软链接文件夹,里面直连了手机的下载目录(~/storage/downloads)和共享存储(~/storage/shared)。
2. 更新软件包索引与核心工具
在安装 Python 前,必须同步最新的软件源索引并更新基础依赖。在终端执行:
pkg update && pkg upgrade
在升级过程中,屏幕可能会出现几次类似于 default=N 或 [Y/n] 的配置文件覆盖提示。初学者无需手动改动,直接按下软键盘上的回车键(Enter)使用默认选项即可。
pkg update 频繁报错超时,可以在终端输入 termux-change-repo,进入图形化菜单,使用方向键选择国内的清华大学(Tsinghua)或中国科学技术大学(USTC)镜像源,确认后即可大幅提高下载速率。
第二阶段:安装 Python 与环境验证
Termux 官方维护了针对 Android ARM64/ARM 架构优化编译的 Python 软件包,安装过程仅需一条命令。
1. 安装 Python 核心包
在终端输入以下命令:
pkg install python
终端会提示需要占用的存储空间大小(通常在 100MB 左右),输入 y 并回车确认。Termux 会自动下载 Python 3 解释器、标准库以及包管理工具 pip、setuptools 和 wheel。
2. 验证安装结果
安装完成后,通过查看版本号确认 Python 和 pip 是否均已处于可工作状态:
python --version
pip --version
终端中的示例反馈应类似于:
~ $ python --version
Python 3.11.8
~ $ pip --version
pip 24.0 from /data/data/com.termux/files/usr/lib/python3.11/site-packages/pip (python 3.11)
只要能正确打印出 Python 3.x 以及 pip 的路径信息,就表明 Python 运行环境已经成功就绪。
第三阶段:编写并运行 Python 脚本
在安卓手机上编写与运行脚本,通常有两种高效的工作方式:直接在 Termux 内置编辑器中编写,或者在外部图形化编辑器中编写后交由 Termux 执行。
工作方式 A:在 Termux 内部直接创建并编辑脚本(推荐轻量调试)
Termux 预装了基础命令行工具,可以通过安装 nano 文本编辑器快速上手:
pkg install nano
nano hello.py
此时终端会切换进入全屏编辑界面。我们输入一段包含标准输出、平台环境读取与基础计算的脚本作为验证:
# hello.py
import sys
import os
import platform
import time
def main():
print("====================================")
print("来自 Termux 的 Python 脚本正在运行!")
print("====================================")
print(f"当前 Python 版本 : {platform.python_version()}")
print(f"操作系统核心 : {platform.system()} {platform.release()}")
print(f"运行设备架构 : {platform.machine()}")
print(f"当前工作目录 : {os.getcwd()}")
print(f"当前时间戳 : {time.strftime('%Y-%m-%d %H:%M:%S')}")
# 模拟简单的逻辑计算
total = sum(i * 2 for i in range(100))
print(f"前 100 项偶数和 : {total}")
print("====================================")
if __name__ == "__main__":
main()
输入完成后,在手机上按下快捷键 Ctrl + O 并回车确认保存,随后按下 Ctrl + X 退出编辑器。
运行脚本与查看输出
回到终端命令行后,直接调用 Python 解释器执行刚才创建的文件:
python hello.py
脚本执行后的预期输出如下:
~ $ python hello.py
====================================
来自 Termux 的 Python 脚本正在运行!
====================================
当前 Python 版本 : 3.11.8
操作系统核心 : Linux 5.10.136-android12-9
运行设备架构 : aarch64
当前工作目录 : /data/data/com.termux/files/home
当前时间戳 : 2026-11-01 02:22:15
前 100 项偶数和 : 9900
====================================
工作方式 B:通过手机外部编辑器编写,在 Termux 中执行
如果脚本逻辑较长,在手机终端小屏幕内用 nano 编写不够舒适,可以在手机上安装图形化代码编辑工具(例如开源的 Acode 或各类文本编辑器),将脚本直接保存在手机的“下载(Download)”或“文档”目录中。
假设你用 Acode 将脚本保存到了手机内部存储的 Download/my_task.py,在 Termux 中只需要通过软链接切换路径即可运行:
cd ~/storage/downloads
python my_task.py
这种分离模式下,外部应用负责代码编写与高亮,Termux 充当纯粹的运行容器,体验更加接近桌面端开发。
第四阶段:依赖库管理(pip 与 C 扩展模块避坑)
实际开发中脚本往往依赖第三方库。在安卓平台上安装依赖时,需要根据模块类型选择正确的安装途径。
1. 纯 Python 模块:直接使用 pip 安装
对于不包含底层 C/C++ 编译扩展的纯 Python 库(例如爬虫常用的 requests、beautifulsoup4,或者轻量 Web 框架 flask),直接使用标准 pip 命令即可正常安装:
pip install requests beautifulsoup4
为了加快下载速度,建议将 pip 源更换为国内镜像:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
2. 包含 C 扩展的科学计算与图像库:优先通过 pkg 安装官方二进制
当尝试安装 numpy、pandas、pillow、lxml 或 cryptography 等模块时,直接执行 pip install numpy 往往会报错崩溃。原因在于:
- Android 系统底层使用的是 Bionic C 库,而不是标准 Linux 发行版所依赖的 GNU glibc。
- PyPI 上预先打包好的
manylinux预编译 wheel 包无法直接在 Android ARM64 架构上载入运行。 - pip 会尝试在手机本地从源码编译,但手机默认缺失 C/C++ 编译器以及 Python 的头文件。
针对这类常用的大型库,Termux 官方仓库已经预先为移动端适配并编译好了现成二进制包,强烈推荐优先使用 pkg 进行安装:
| 目标 Python 模块 | 推荐安装命令(Termux 预编译) | 说明 |
|---|---|---|
numpy |
pkg install python-numpy |
包含底层 BLAS/LAPACK 针对 ARM 架构的加速支持 |
scipy |
pkg install python-scipy |
科学计算库,包含 Fortran 与 C++ 预编译组件 |
pillow (PIL) |
pkg install python-pillow |
图像处理库,已集成 libjpeg、libpng 编解码器 |
lxml |
pkg install python-lxml |
网页解析加速库,已集成 libxml2 与 libxslt |
cryptography |
pkg install python-cryptography |
加解密库,避免了本地构建 Rust 与 OpenSSL 工具链 |
3. 本地编译特殊第三方包:补全编译工具链
如果要安装的某个特殊库在 pkg 列表中没有收录,必须从源码编译,则需要在 Termux 中先安装编译基础设施:
pkg install clang make libffi libffi-dev
配置好 clang 编译器后,再执行 pip install <package>,pip 便可以在手机本地调用 clang 完成 C 源码的编译与链接。
第五阶段:长效运行保活与常见报错排查
在手机上运行爬虫、定时监控脚本或本地轻量 Web 服务时,很容易遇到手机息屏一段时间后脚本被系统强行终止的问题。
1. 保持 CPU 唤醒锁(防止息屏杀进程)
现代 Android 系统的电池管理非常严格,手机锁屏后几分钟内就会进入深度睡眠,降低 CPU 频率并挂起后台网络,甚至直接杀死占用资源的应用。
为了让脚本持续运行,需要在 Termux 中申请系统的 Wake Lock(唤醒锁):
termux-wake-lock
执行该命令后,Termux 会在通知栏常驻一条带有“wake lock held”的通知,强制 Android 保持 CPU 处于唤醒状态,保证脚本和网络连接不被挂起。脚本运行完毕后,可以执行以下命令释放锁以节省电量:
termux-wake-unlock
2. 系统电池优化白名单设置
仅有软件层面的 wake lock 依然可能被部分厂商的定制系统(如 MIUI、HyperOS、ColorOS、OriginOS 等)强杀。还需要在手机系统的设置中进行如下配置:
- 打开手机 “系统设置” -> “应用管理” -> “Termux”。
- 找到 “省电策略” 或 “电池管理”,将其从“智能限制”修改为 “无限制” 或 “允许后台高耗电”。
- 开启 “允许应用自启动” 与 “允许关联启动”。
3. 常见报错与排查清单
- 报错
bash: /sdcard/...: Permission denied:安卓的共享存储分区(/sdcard)在文件系统挂载时带有了noexec标志,禁止直接作为可执行程序启动。不要直接使用./script.py,而必须通过解释器显式调用:python /sdcard/.../script.py。 - 报错
No module named 'xxx':确认当前脚本引用的 Python 解释器是否就是 Termux 中安装的实例。在终端输入which python,正常路径应为/data/data/com.termux/files/usr/bin/python。如果在多环境切换中混乱,使用python -m pip install xxx可以确保库准确安装到当前使用的解释器路径下。 - 报错
clang: error: linker command failed with exit code 1:说明该 Python 包在调用底层 C 库时缺失了对应的系统头文件。可根据具体缺失的文件名通过pkg search <name>搜索对应的头文件包(例如libxml2-dev、openssl-tool)并补充安装。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









