Pydroid 3 运行与调试技巧:运行模式、魔法注释与断点
在 Pydroid 3 里「跑起来」这件事有点门道:同一个脚本,可以按 GUI 模式弹窗口,也可以在终端里出文本。这篇讲应用怎么判断运行方式、怎么用魔法注释强制指定,以及断点调试的正确用法。
一、应用自己会选运行模式
Pydroid 3 根据脚本 import 了什么自动选择运行方式:
- import 了
kivy,按 Kivy(SDL2)GUI 模式跑; - import 了
PySide6,按 Qt GUI 模式跑; - import 了
tkinter、pygame等,对应各自的 GUI 模式; - 什么界面库都没有,就在终端里出输出。
二、魔法注释:拿回控制权
自动判断偶尔不合心意,在文件里加一行注释就能强制指定:
| 写法 | 作用 |
|---|---|
#Pydroid run terminal | 强制在终端模式跑 |
#Pydroid run kivy | 按 Kivy 模式跑 |
#Pydroid run qt | 按 Qt 模式跑 |
#Pydroid run sdl2 / tkinter / pygame | 对应的 GUI 模式 |
最常用的场景是 matplotlib:它默认按 GUI 模式运行,只想要终端输出、不想弹图时,文件第一行加 #Pydroid run terminal;反过来想让图弹出来,就别加。
三、报错怎么读
程序报错时会弹出日志窗口:
- 红色那行是关键,错误类型和提示都在里面;
- 定位不到问题时,往红色行上面多看一两行,出错的调用链通常在前面;
- 语法错误会直接标出有问题的行,改完再跑。
报错里带 dlopen failed: library "xxx.so" not found 的另算:它说明这个库要加载一个安卓系统里不存在的原生库,反复重装没有用,先搜「库名 + Android」找替代实现。
四、断点调试(PDB)
比起满篇插 print(),断点适合排查「变量在哪一步开始不对」:
- 点行号下断点,再点一次取消;
- 点调试运行,程序停在断点处;
- 单步执行、查看变量,支持监视(watch)特定表达式。
内置的完整终端模拟器也是排障好手:pip list 核对已装的库、进交互式解释器逐行试语法,都在 Terminal 标签里完成。
五、跑长任务的两个现实问题
- 后台被杀:Android 的省电机制可能把挂着的进程回收。把应用从电池优化里放行、任务期间保持屏幕亮着,情况会好很多;
- 图弹出来了像卡住:那是
plt.show()的窗口在等关闭,正常现象,关掉窗口程序就继续。
写代码、装库、调试这三件事顺了,手机就能承担相当一部分日常练习与小工具开发。环境还没装好的话,先从手机 Python 编程入门看起;装库相关的坑在pip 装库与环境配置里有一张排查表;应用的功能全貌与界面速览,见 pydroid3 整理站。