如何在安卓手机上运行Python脚本_通过Termux搭建完整的Python运行环境

2026-05-28日常编程214903

Termux中运行Python脚本需三步到位:先执行termux-setup-storage获取存储权限,再用pkg install python clang libffi-dev openssl-dev装齐依赖,最后配置pip清华源并优先通过science-packages仓库安装科学计算库。

python 脚本在安卓手机上能直接运行,但前提是环境配对——Termux 不是“装了就能跑”,它需要三步到位:权限打通、源换稳、依赖装齐。跳过任一环节,ImportErrorPermission deniedcommand not found 就会立刻报到你脸上。

termux-setup-storage 必须在安装 Python 前执行

Android 11+ 系统默认禁止应用直接访问内部存储,而 Termux 的 ~/storage 是靠 termux-setup-storage 命令动态创建的符号链接。没运行这一步,python script.py 可能提示找不到文件,或写入日志时抛出 PermissionError: [Errno 13] Permission denied

  • 首次启动 Termux 后立即执行:termux-setup-storage,系统会弹出 Android 权限请求,务必点“允许”
  • 执行成功后,ls ~/storage 应能看到 dcim/downloads/shared/ 等目录
  • 脚本若放在 /sdcard/Download/hello.py,需用完整路径调用:python /sdcard/Download/hello.py,不能写成 python ~/storage/downloads/hello.py(后者是软链,部分库识别不稳定)

pkg install python 不等于开箱即用

Termux 自带的 pkg install python 安装的是 CPython 解释器,但它默认不带 pip 的 wheel 支持,也不含编译扩展所需的头文件——这意味着你后续 pip install numpy 很可能卡在 gcc: error: unrecognized command line option '-fstack-protector-strong'

  • 必须连带安装开发依赖:pkg install python clang libffi-dev openssl-dev
  • 验证是否装全:python -c "import sysconfig; print(sysconfig.get_paths())",输出中应含 includeplatinclude 路径
  • 别用 pkg install python3——Termux 中 python 就是 Python 3.x,python3 是冗余符号链接,删了也不影响

pip 源不换,90% 的包会安装失败

Termux 默认 pip 源指向 pypi.org,但在国内移动网络下,DNS 解析常超时、TLS 握手失败,表现为 ConnectionError: HTTPSConnectionPool 或卡在 “Collecting …” 十分钟不动。

Python 3.14.3

微软官方的 Python 扩展,是 VS Code 安装量最高的扩展(209M+)。集成 IntelliSense(通过 Pylance)、调试(通过 Python Debugger)、代码检查、格式化、重构和单元测试等功能。支持 Jupyter Notebook、虚拟环境管理和多 Python 版本切换。

  • 一键配置清华源:mkdir -p ~/.pip && echo -e "[global]\nindex-url = https://pypi.tuna.tsinghua.edu.cn/simple/\ntrusted-host = pypi.tuna.tsinghua.edu.cn" > ~/.pip/pip.conf
  • 生效后测试:pip install requests --upgrade --quiet,3 秒内完成即正常
  • 注意:不要用 pip config set global.index-url,Termux 的 pip 版本较旧,该命令不支持

科学计算库优先走 science-packages 仓库

numpyscipymatplotlib 这类含 C 扩展的库,在 Termux 上从源码编译成功率极低——ARM 架构 + 内存限制 + 缺少 Fortran 工具链,基本等于劝退。

  • 启用官方 science 仓库:pkg install unstable-repo && pkg install science-repo(2026 年已合并为 science-packages
  • 然后直接装预编译二进制:pkg install python-numpy python-scipy python-matplotlib
  • 验证:python -c "import numpy as np; print(np.__version__)”,输出版本号即成功;若报 libopenblas.so: cannot open shared object file,补装:pkg install openblas

Termux 的 Python 环境不是 Linux 的简化版,而是针对 ARM+Android 的特制变体——pkgpip 各管一摊,~/storage 是权限桥,science-packages 是救命稻草。漏掉其中任意一层抽象,问题就藏在看似最平常的 python script.py 里。

本文地址:https://www.ufcn.cn/tutorials/3428206.html

如非特殊说明,本站内容均来自于网友自主分享,概不代表本站观点,如有任何问题我们都将在收到反馈后的第一时间进行处理!