我今天的方案主要是通过使用 Termux app 来实现在 Android 端部署 Linux 环境和 Python 环境。
这篇文章主要介绍一个基于 VLM 的使用例子(将不涉及 VLM 本身),聚焦于环境的搭建,包括 Termux 的安装、Python 环境设置,以及在 Python 虚拟环境中部署 Gradio 网页服务的全过程。
1. 安装 Termux
你可以通过网络下载 Termux 的 APK 文件并直接安装。
如果你的 Android 版本较低(如某些工业 Android 系统),Termux 分发格式为 xapk,可以通过以下方式安装:
- 将
.xapk重命名为.zip并解压 - 使用
adb install-multiple命令安装:
adb install-multiple com.termux.apk config.arm64_v8a.apk config.en.apk config.mdpi.apk config.zh.apk
2. 安装 Python 3.10
Termux 默认使用 Python 3.12,但因特殊原因,我需要 Python 3.10,安装流程如下:
pkg update && pkg upgrade
pkg uninstall python
pkg install tur-repo
pkg update
pkg install python3.10
ln -sf /data/data/com.termux/files/usr/bin/python3.10 $PREFIX/bin/python3
ln -sf /data/data/com.termux/files/usr/bin/python3.10 $PREFIX/bin/python
3. 构建 NumPy
NumPy 无法通过直接 pip 安装 wheel 文件的方式完成,因此需通过源码编译安装:
pkg install lfortran
export FC=lfortran
pip install setuptools==59.8.0
pkg install libexecinfo build-essential openblas llvm libllvm
MATHLIB="m" pip install numpy==1.25.2
注意:不要在 Python 3.10 环境下安装 numpy2, 所以我这边指定了版本1.25.2; 如果你是python 3.12 则可以安装numpy2。
4. 安装 Gradio
Gradio 依赖多个编译库,同时 Pillow 还依赖 JPEG 支持。以下是准备工作:
pkg update && pkg upgrade
pkg install python
pkg install clang make libffi libjpeg-turbo rust
5. 关于国内网络下载问题
在国内环境中部署 Gradio 时,可能会因下载 Huggingface 所依赖的 frpc 文件失败而出错。
解决方案为:手动下载该文件并放置到目录 .cache/huggingface/gradio/frpc 中。
使用 Gradio 时页面会提示缺失该文件并提供下载链接,可根据提示进行处理(可能需要梯子)。
至此,一个可用的 Android + Linux + Python + Gradio 环境就配置完成了。
发表回复