在 Android 手机上运行 Python:能做什么、不能做什么,以及现在用什么
可以:PocketCode 在手机上运行真正的 CPython 3.12,无需 Termux。本文讲清楚能做什么、不能做什么,以及它与 Termux、Pydroid 3、QPython 的对比。
**简短回答:**可以在 Android 手机上运行 Python——PocketCode 在设备本身上运行真正的 CPython 3.12 解释器,没有 pip、只有标准库,并且已在 Google Play 上架(免费;Pro 可选)。
搜索“在 Android 上运行 Python”,大多数答案会把你引向两条路之一:安装一整套终端环境并手动编译各种东西, 或者把代码粘贴到某个网站、让它在别人的服务器上运行。前者繁琐;后者一旦你失去信号就立刻不能用了。
PocketCode 走的是第三条路:它直接在你的手机上运行真正的 Python,无需安装任何东西。打开一个 .py
文件,点击 Run,CPython 就在你手中的设备上执行。本文会准确讲清楚这是如何做到的、你能用它构建什么,
以及同样重要的——它诚实的边界在哪里。
我们确定知道的事
以下内容全部来自 PocketCode 自己的源代码,而不是营销话术:
- **解释器:**CPython 3.12,为 WASI(WebAssembly)构建,以
python.wasm的形式打包在应用安装包内(未压缩约 26 MB),由内嵌的 WebAssembly 运行时执行。它不是单独的下载项。 - 运行方式:编辑器的 Run 按钮处理
.py和.pyw文件。你的项目文件夹会挂载为/project,除非你在带参数运行中开启允许 WASM 引擎访问网络,否则网络是关闭的。 - **系统要求:**Android 9 或更高版本,64 位设备(arm64-v8a 或 x86_64)。
- **编辑器支持:**编辑器的一键安装列表中有 Python 语言服务器(Pyright),提供补全和诊断。
- **包:**只有标准库——见下表。没有
pip。 - **状态:**已在 Google Play 上架(免费;Pro 可选)。
- **我们尚未公布的内容:**基准测试或已测试设备清单,所以本文不会在上述内容之外对速度或兼容性做任何声明。
真正的 CPython,在设备上运行
这不是某种类 Python 的解释器,也不是托管的沙箱。PocketCode 内置了CPython 3.12 并在设备本地 运行:该构建被编译为 WebAssembly,由应用内嵌入式运行时执行。没有远程服务器代劳,也没有任何东西需要配置—— 安装 PocketCode,Python 就在那儿。
因为执行是在本地进行的,有两点对手机而言尤为重要:
- 它在设备本地运行。 你的脚本在手机上执行,而不是在服务器上——应用只在登录时需要联网;已有会话时打开应用无需联网。
- 你的代码留在你的设备上。 不会有任何东西被上传到第三方运行器去执行。
你实际能运行什么
你可以使用CPython 3.12 标准库的大部分——也就是让 Python 声名远播的那套“开箱即用的电池”:
| 你想要… | 使用 |
|---|---|
| 解析和生成 JSON | json |
| 匹配和转换文本 | re |
| 数学和统计 | math, statistics, random |
| 处理日期和时间 | datetime, time |
| 组织数据结构 | collections, dataclasses, itertools |
| 读写文件 | pathlib, csv, io |
下面这段脚本只用了标准库——原样即可运行:
import json, statistics
scores = [88, 92, 79, 95, 88, 73]
summary = {
"count": len(scores),
"mean": round(statistics.mean(scores), 1),
"median": statistics.median(scores),
"max": max(scores),
}
print(json.dumps(summary, indent=2))
点击 Run,控制台打印:
{
"count": 6,
"mean": 85.8,
"median": 88.0,
"max": 95
}
这涵盖了绝大多数脚本编写、自动化、算法练习、数据处理和学习编程的工作。如果你正在备战面试、跟着某个 Python 课程学习、给解析器做原型,或者在路上临时写个转换脚本,它都能原样运行。
诚实的边界
比起让你撞上一堵墙,我们更愿意提前把预期讲清楚,所以这是直白的版本:
- 没有
pip,没有外部包。 你无法在运行时安装第三方库。任何不在标准库里的东西——包括像 NumPy 或 pandas 这样依赖 C 扩展的包——都无法导入。这是一个脚本编写和学习环境,而不是数据科学工具栈。 - 不是完整的标准库。 大部分都包含在内——
json、csv、sqlite3、decimal、zlib/bz2、xml.etree.ElementTree、hashlib、pickle、zoneinfo、asyncio、socket/select——但没有ssl、ctypes、lzma、tkinter、turtle、curses、venv、ensurepip和multiprocessing。 - 没有真正的线程或子进程。 不要指望真正的并行,也不能启动其他进程。
- 默认脚本无法访问网络。 解释器运行在网络被屏蔽的 WebAssembly 沙箱里,所以脚本无法打开 socket 或抓取
URL,除非你在带参数运行中开启允许 WASM 引擎访问网络(即便如此也没有
ssl,因此不支持 HTTPS)。它只能看到你的项目文件夹 (挂载为/project):读写这些文件并向控制台打印。 - 只支持标准库 Python。 如果某个教程的第一行是
pip install ...,那部分在这里就不适用。 - 是解释器速度,不是原生速度。 对脚本和练习而言,设备本地执行足够快,但重度数值运算会比带原生优化的 桌面版 CPython 感觉更慢。
在这些边界之内,它就是真正的 Python,不带任何附加星号。
工作流程:打开、Run、读取输出
运行一个脚本刻意做得平淡无奇——这正是重点:
- 在**代码编辑器**中打开或创建一个
.py文件。 - 点击 Run。PocketCode 会把该文件路由到它的设备本地 Python 运行器。
- 输出会像任何其他进程一样流入控制台——
print()、traceback、退出码,一应俱全。
你还能获得编辑器围绕它的全套工具:由 LSP 支撑的自动补全和内联诊断、
设备本地的 PEP-8 格式化、一个让 : 和 [] 不必到处翻找的编程符号栏,以及多光标编辑——全部在手机上完成。

真实截图:在平板上用 Run 按钮运行 hello.py。CPython 3.12 通过 WASM 在设备上运行并输出到内置控制台;Python 语言服务器(Pyright)可从状态栏一键安装。
关于范围的一点说明:Python 是从编辑器的 Run 按钮运行的。内置 AI 助手也可以通过同一个设备本地运行器运行文件(它的
build_run_file工具),在默认访问级别下,它会先询问再运行。
Python 只是众多语言之一
Python 并非孤例。同样的设备本地执行模型在 PocketCode 中覆盖 16 种语言和文件类型——所以那台运行你 Python 脚本的手机,也能在真正内置的 Node.js 上运行一个 JavaScript 文件、跑一句 Ruby 单行代码,或者用设备本地的编译器编译并运行 C,全程都不需要服务器参与。其中 13 种内置于应用中(JavaScript、TypeScript、C、Python、Ruby、PHP、通过功能有限的解释器运行的 Java、Kotlin、Shell、SQL,以及 HTML、Markdown 和 JSON 的检查与预览);Lua、Go 和 Rust 风格脚本作为可选包提供。**完整阵容**里有详细说明,包括目前还不能运行的部分。
你现在的选择
这里诚实地对比一下你现在就能用的工具。竞品各列只是一般性描述;安装前请查看各自的商店页面,确认当前的 Python 版本和价格。
| Termux | Pydroid 3 | QPython | PocketCode | |
|---|---|---|---|---|
| 它是什么 | 带自有包管理器的终端模拟器 | Python IDE 应用 | 带脚本编辑器和控制台的 Python 应用 | 内置 Python 运行器的 Android IDE |
| Python | 从 Termux 软件源安装(pkg install python) | 内置;版本取决于发行版本 | 内置;版本取决于发行版本 | 运行在 WebAssembly 上的 CPython 3.12,内置 |
| pip / 包 | pip 可用;原生包取决于 Termux 提供的内容或自行编译 | pip 加自有的预编译 wheel 仓库 | 自有的包索引(QPYPI) | 无:仅标准库 |
| 编辑器 / LSP | 没有图形编辑器(vim、nano 等) | 内置编辑器;部分功能需 Premium | 内置编辑器 | 带 LSP 的代码编辑器;Pyright 一键安装 |
| 终端 | 有,整个应用就是终端 | 含终端 | 控制台 | 内置终端,与 Python 运行器相互独立 |
| 费用 / 广告 | 免费、开源 | 免费,含广告;可升级 Premium | 免费含广告或付费(见商店页面) | 有 Free 方案;付费方案详情见定价页 |
| 状态 | 现在可用(推荐的获取渠道见 Termux wiki) | 现在可在 Google Play 获取 | 现在可在 Google Play 获取 | 已在 Google Play 上架(免费;Pro 可选) |
如何选择:
- **你今天就需要
pip install或 NumPy:**Termux 或 Pydroid 3。 - **你想要开箱即用的编辑器,且标准库就够用:**Pydroid 3 或 PocketCode 都可以。
- **你想要一个应用同时搞定 Python、JavaScript、C、数据库、Git 和 SSH 终端:**这正是 PocketCode 的定位,你可以从 Google Play 安装。
- **你想把 Python 应用打包成 APK:**以上工具都做不到。请看 python-for-android、Briefcase 或 Chaquopy。
来源与延伸阅读
- Python 3.12 标准库参考,用于确认脚本能导入哪些模块。
- Using Python on Android,CPython 官方的 Android 平台文档(英文)。
- Termux wiki,介绍如何在 Termux 中安装 Python 和包。
- Google Play 上的 Pydroid 3,查看其当前版本和价格。
你口袋里的手机是一台真正有能力的 Python 机器——私密、即时。它不是用来训练神经网络的,但绝对适合 学习这门语言、练习算法,以及在远离办公桌时给真正的工作写脚本。
PocketCode 已在 Google Play 上架。立即获取,在自己的设备上运行 Python。
常见问题
可以在 Android 上运行 Python 吗?
可以。PocketCode 直接在手机上运行一个真正的 CPython 3.12 解释器——打开一个 .py 文件,点击 Run,它就会在设备本地执行,全程不涉及任何服务器。
在 Android 上运行 Python 需要 Termux 吗?
不需要。解释器已内置于 PocketCode 中。没有任何东西需要安装或编译——你打开应用的那一刻它就能用。
它在设备本地运行 Python 吗?
是的。解释器就住在你的设备上,所以你的脚本在手机本身上运行。应用在登录时需要联网;已有会话时打开应用无需联网;之后,运行 Python 都是本地的。
它是真正的 Python 吗?
是的——真正的 CPython 3.12,带大部分标准库,编译为 WebAssembly 并由一个内嵌的运行时执行。它不是一个类 Python 的仿制品。
可以使用 pip 或安装像 NumPy 这样的包吗?
不可以。你能获得大部分标准库,但没有 pip,也没有像 NumPy 或 pandas 这样的 C 扩展包。它是一个用于编写脚本和学习的环境,而不是数据科学工具栈。
Python 脚本可以访问互联网吗?
默认不可以。解释器运行在一个网络被屏蔽的 WebAssembly 沙箱中,因此脚本无法打开套接字或抓取 URL,除非你在**带参数运行**中开启“允许 WASM 引擎访问网络”。即便如此也没有 ssl 模块,所以不支持 HTTPS。
我现在能下载 PocketCode 并运行 Python 吗?
可以。PocketCode 已在 Google Play 上架,可免费下载(Pro 是应用内的可选订阅)。它需要 Android 9 或更高版本以及 64 位设备。Termux 和 Pydroid 3 是现在也可以安装的其他选择——本页的对比表格列出了它们的区别。
代码编辑器