使用Chaquopy连接pytesseract遇TesseractNotFoundError求助
解决Chaquopy调用pytesseract的TesseractNotFoundError问题
问题本质
你在Windows开发机上配置的Tesseract路径和环境变量对Android设备/模拟器完全无效——Chaquopy是在Android(Linux内核)环境中执行Python代码,需要的是Android兼容的Tesseract二进制文件,而非Windows的.exe程序。
具体修复步骤
给Android环境部署Tesseract二进制文件
- 下载适配Android架构的Tesseract预编译可执行文件(无
.exe后缀,对应armeabi-v7a、arm64-v8a等目标架构) - 将文件放入项目的
src/main/jniLibs/[对应abi]/目录,比如src/main/jniLibs/arm64-v8a/tesseract - 在Python代码中明确指定Tesseract的绝对路径:
(注:jniLibs下的文件会被自动复制到Android设备的import pytesseract # 替换成你的应用包名 pytesseract.pytesseract.tesseract_cmd = "/data/data/com.your.app.package/lib/tesseract"/data/data/[包名]/lib/目录)
- 下载适配Android架构的Tesseract预编译可执行文件(无
验证文件路径有效性
可以在Python代码中先检查文件是否存在,排除路径错误:import os tesseract_path = "/data/data/com.your.app.package/lib/tesseract" print(os.path.exists(tesseract_path)) # 输出True才说明路径正确配置Tesseract训练数据
还要把Tesseract的训练数据(.traineddata文件)放到Android设备可访问的目录,比如/data/data/[包名]/files/tessdata/,并在代码中指定:pytesseract.pytesseract.tessdata_dir_config = '--tessdata-dir "/data/data/com.your.app.package/files/tessdata"'
关键提醒
Windows系统的Tesseract程序(.exe)无法在Android环境运行,必须使用专为Android编译的版本,不要混淆开发机和运行环境的文件系统。
内容的提问来源于stack exchange,提问作者newbie
相关产品推荐
相关产品推荐

