预编译 wheel 仓库 —— Pydroid 科学库大礼包一键可用的秘密
普通 pip 在 Android 上的困境
想象一下你在手机上跑普通的 Python,然后想装 NumPy。流程会是:
pip install numpy- pip 去 PyPI 找 NumPy 的 wheel 文件
- PyPI 上的 wheel 是给 x86 Linux / macOS / Windows 打的,没有给 Android ARM 的
- pip 降级到源码编译模式
- 源码编译需要
gcc+gfortran+ BLAS 库 + 一堆头文件 - Android 系统本身不提供这些,编译失败
所以普通 Termux 里装 NumPy 得先 pkg install python-numpy,用的是 Termux 自己打包好的版本——不是 PyPI 标准安装路径。
Pydroid 的解法:专属 wheel 仓库
Pydroid 官方维护了一个专门给 Android ARM 打 wheel 的仓库,它的逻辑是:
- 提前把常见科学库(NumPy、SciPy、Matplotlib、scikit-learn、Jupyter...)用内置 C 编译器在 Pydroid 环境里编译好
- 把编译产物以标准 pip wheel 格式打包(
.whl文件,架构标记为android_arm64) - 托管在一个公开的 index 服务器上
- Pydroid 的 pip 默认先查这个仓库,找到匹配的 wheel 就直接下载安装(几秒完成),找不到再 fallback 到源码编译
哪些包有预编译 wheel
官方宣称以下包保证有预编译 wheel(优先秒装):
- NumPy(多维数组 + 数学运算基础库)
- SciPy(科学与工程计算,依赖 NumPy)
- Matplotlib(数据可视化,图表绘制)
- pandas(数据分析 + 表格操作)
- scikit-learn(机器学习算法)
- Jupyter + IPython(交互式开发)
- TensorFlow Lite(轻量神经网络)
- PyTorch(完整深度学习框架)
- OpenCV(计算机视觉,需要 Camera2 API)
- SymPy(符号数学)
- Pillow(图像处理)
- BeautifulSoup / Requests / Scrapy(网络爬虫三件套)
- Kivy / PySide6 / Pygame(GUI 框架)
这个列表随 Pydroid 版本更新在变化,以 App 内 Pip 面板的「Quick Install」区为准——那里列出来的就是官方 wheel 仓库确认覆盖的热门包。
免费版 vs Premium 的 wheel 差异
某些库的预编译 wheel 被锁在 Premium 版:
- TensorFlow Lite 完整版
- PyTorch
- OpenCV(带 Camera2 API 支持)
- scikit-learn(完整预编译)
免费版也能通过源码编译装这些库,但成功率和编译时间都无法保证。Premium 版独享预编译 wheel → 秒装。
仓库设置
左侧菜单 → Pip → Settings(或某个类似入口)可以管理这个仓库:
- 开启/关闭:关闭后 pip 只查标准 PyPI(源码编译,大概率失败)
- 手动指定 find-links:高级用户可以加自己的 wheel 源
建议保持默认开启状态,除非你明确知道自己在做什么。