Windows7下PyOCR的get_availables_tools()返回空列表,Tesseract命令行可用
我之前在Windows环境下配置PyOCR和Tesseract时也碰到过一模一样的情况——明明Tesseract在命令行里用得好好的,但PyOCR就是检测不到工具。给你几个排查和解决的方向:
重启你的Python运行环境
修改系统/用户PATH后,Windows不会自动把新的环境变量同步给已经打开的进程(比如CMD窗口、PyCharm、VS Code等)。你需要完全关闭当前运行Python的终端或IDE,重新打开后再测试get_availables_tools()。手动指定Tesseract的路径
有时候PyOCR的自动路径检测会失效,你可以在代码里手动指定Tesseract的可执行文件路径:import pyocr import pyocr.builders # 手动设置Tesseract的完整路径 pyocr.tesseract.TESSERACT_CMD = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe' # 再次检测可用工具 tools = pyocr.get_available_tools() print(tools)检查PyOCR与Tesseract的版本兼容性
Tesseract 3.05是比较旧的版本,部分新版本的PyOCR可能不再兼容它。你可以尝试安装一个适配旧版Tesseract的PyOCR版本:pip uninstall pyocr pip install pyocr==0.7.3验证Python位数与Tesseract的匹配性
如果你安装的是64位Python,但Tesseract是32位(你装在Program Files (x86)目录下,说明是32位),偶尔会出现路径检测异常的情况。可以尝试安装对应位数的Python,或者重新安装64位版本的Tesseract(如果有适配版本的话)。确认TESSDATA_PREFIX变量的正确性
虽然你已经设置了这个变量,但可以再验证一下:打开CMD,输入echo %TESSDATA_PREFIX%,确认输出是C:\Program Files (x86)\Tesseract-OCR,同时要保证这个目录下存在tessdata文件夹(里面是Tesseract的语言包文件)。
内容的提问来源于stack exchange,提问作者Wade_MechE

