pip install 失败 —— wheel 缺失、源码编译卡死、网络中断
失败分三类,对号入座
第一类:没有预编译 wheel,降级到源码编译后卡死/失败
症状:pip 输出 No matching distribution found 或 Building wheel for xxx... 后长时间卡住,最终在编译阶段报 C 编译器错误。
原因:Pydroid 的 wheel 仓库没有覆盖这个包,pip 尝试从源码编译。但源码编译需要:
- C/C++/Fortran 编译器(Pydroid 内置了)
- 包依赖的系统级 C 库头文件(Pydroid 可能没装这个 C 库)
- 编译环境和包作者测试过的平台一致(Pydroid 的交叉编译环境和 x86 Linux 有差异)
解决:
- 换一个有 wheel 的替代品(大多数科学库 Pydroid 都有 wheel,可以在 Pip 面板的 Quick Install 区确认)
- 这个包在 PC 上编译好 wheel,传到手机上用
pip install xxx.whl离线安装 - 去 Pydroid 的 GitHub / 社区 Issue 提一下,看能不能让官方帮忙打包 wheel
第二类:网络问题导致下载中断
症状:pip 输出 ConnectionError、timeout、Download failed 等。
原因:Pydroid 本身离线可用,但 pip 装包必须联网下载 wheel 或源码。网络不稳、VPN 干扰、DNS 问题都可能导致下载失败。
解决:
- 换一个稳定的网络(Wi-Fi 比移动数据稳)
- 关闭 VPN 试试(某些 VPN 可能影响 HTTPS 连接)
- 用
pip install xxx -i https://pypi.tuna.tsinghua.edu.cn/simple换国内镜像源 - 用
pip install xxx --retries 10增加重试次数
第三类:Premium 专属 wheel 免费版装不上
症状:pip 输出 No matching distribution found for torch 之类,你明确知道这个包在 Pydroid 上是支持的。
原因:你想装的是 Premium 专属的库(PyTorch、TensorFlow Lite、OpenCV 带 Camera2 API 版本等),免费版的 wheel 仓库里没有。
解决:
- 升级 Premium(最直接)
- 某些库有免费替代路径(比如 OpenCV 不带 Camera2 API 的基础版可能能装上)
- 用 Proot Root + Termux 组合绕过(折腾但可行)
通用排查步骤
pip 装包失败时,按这个顺序排查:
- 确认包名正确(大小写、拼写)
- Pip 面板里能不能搜到这个包(搜到 = 有 wheel;搜不到 = 只能源码编译)
- 网络是否正常(浏览器随便开一个网页看看)
- 免费版还是 Premium(Premium 专属库免费版装不上是正常的)
- 内部存储够不够(wheel 下载 + 解压需要空间)
不要做的事
- 不要反复卸载重装 Pydroid 来解决 pip 问题——重装不会改变 wheel 仓库覆盖范围
- 不要
pip install --upgrade pip然后再装——Pydroid 的 pip 是定制过的,升级标准 pip 可能把它搞坏 - 不要从 PyPI 下载源码包然后手动编译——除非你确定能搞定交叉编译环境,否则大概率失败