Termux安装后python命令报错“command not found”是因为默认不预装Python,需手动执行pkg update && pkg install python;pip装包失败多因网络或缺少Android适配wheel,应换清华源并优先选支持arm64的包。

Termux安装后为什么python命令报错“command not found”
因为Termux默认不预装Python,必须手动安装。它用的是独立的包管理器pkg,不是APT或APK,所有工具都隔离在$PREFIX路径下(通常是/data/data/com.termux/files/usr)。
执行以下命令才能启用Python环境:
pkg update && pkg install python
注意:不要用apt或apk;也不要尝试pip install python——那是装包,不是装解释器。
- 安装完后
python --version应输出类似3.11.9的版本号 - 如果提示
Permission denied,大概率是Android 11+限制了/data/data/目录访问,需先运行termux-setup-storage授权 - Termux的
python可执行文件实际位于$PREFIX/bin/python,别手动加PATH——pkg install已自动处理
用pip装库时频繁ConnectionRefusedError或超时
Termux默认使用PyPI官方源,但国内直连极不稳定,且部分包(如numpy、opencv-python)没有预编译的Android wheel,会触发本地编译——这在手机上基本不可行。
立即学习“Python免费学习笔记(深入)”;
解决方法分两步:
快速生成专业的 Python 脚本和应用代码。一键创建完整项目结构,支持CLI、API、爬虫、Bot、Django等多种项目类型,包含完整的项目结构、配置文件、依赖管理、测试、README和文档。
- 换清华源:
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple/ - 只装提供Android wheel的包:优先查
pip show opencv-python-headless是否支持manylinux2014_aarch64或arm64平台;requests、pillow、qrcode通常可用,scipy、pandas则大概率失败 - 若仍卡住,加
--no-cache-dir -v看具体卡在哪一步——常是setuptools升级或wheel构建阶段,此时建议退回更老但稳定的版本,例如pip install pillow==9.5.0
import cv2失败:No module named 'cv2' 或 libglib-2.0.so.0: cannot open shared object file
OpenCV在Termux中不能直接pip install opencv-python。官方wheel不含Android适配的二进制,而源码编译需要完整toolchain(NDK、CMake等),手机根本跑不动。
可行路径只有一条:用Termux社区维护的预编译包:
pkg install opencv
然后在Python里这样导入:
import sys<br>sys.path.append("/data/data/com.termux/files/usr/lib/python3.11/site-packages/")<br>import cv2
- 注意路径中的
python3.11要和你pkg install python实际安装的版本一致 -
pkg install opencv装的是C++库+Python绑定,但不会自动注册到site-packages,所以需要手动sys.path.append - 如果导入后调用
cv2.VideoCapture(-1)黑屏或报VIDEOIO ERROR,说明Termux无摄像头权限——它无法像原生App那样申请android.permission.CAMERA,只能读取已存在的图片文件
脚本里用input()卡住、中文乱码、或print()不刷新
Termux终端对UTF-8和行缓冲的支持较弱,尤其在非标准字体或旧机型上。
- 确保终端编码为UTF-8:
export LANG=en_US.UTF-8(加到~/.profile可持久化) -
input()在某些Termux版本中会吞掉首字符,临时解法是多敲一个空格再输内容 -
print("done", flush=True)强制刷缓存,避免日志卡在缓冲区不显示 - 中文路径或文件名读写失败?改用
open(path, encoding="utf-8")显式声明编码,别依赖系统默认
真正麻烦的是交互式体验本身——Termux本质是终端模拟器,不是IDE。想点图标就运行、带UI、能调相机/定位/通知?那得打包成APK,用Kivy或BeeWare,而不是靠Termux硬扛。

















