Python3.6安装使用tesserocr文件时遇到问题

  本机运行环境:

  Win 10 version 1709;

  Python 3.6.3 (v3.6.3:2c5fed8, Oct  3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32

  在Windows10下,首先需要下载tesseract,它为tesserocr提供底层支持。具体下载官方路径:https://github.com/UB-Mannheim/tesseract/wiki,选择对应的系统版本,可以选择一个相对不带dev的稳定版本下载,如:tesseract-ocr-setup-3.05.02-20180621.exe,

然后一路安装,唯一记得勾选Additional language data(download),勾选可能会用到的语言tessdata,如简体、繁体中文,数学模块等,不需要全选,下载tessdata的时间会比较长。

我们在PowerShell下使用pip3 install tesserocr pillow 命令安装 tesserocr时通常会报错:“error: Microsoft Visual C++ 14.0 is required. Get it with "Microsoft Visual C++ Build Tools",这个时候不宜直接去下载Microsoft Visual C++ Build Tools,而是使用原始的whl文件方式安装。tesserocr 的whl官方文件下载路径:https://github.com/simonflueckiger/tesserocr-windows_build/releases,

 

再次在powershell下安装:使用cd跳转到whl文件所在目录,然后 执行 ”pip3 install tesserocr-2.2.2-cp36-cp36m-win_amd64.whl“,即可轻松完成安装。

紧接着用例子验证如何使用:我们找到一个验证码图片:image.jpg,下载到本地磁盘,用代码进行验证:

1 import tesserocr
2 from PIL import Image
3 image=Image.open('image.jpg')
4 print(tesserocr.image_to_text(image))

不出意外,首次运行总是不顺利,相信我遇到的坑大多数人都会遇到,大抵错误类似:

Traceback (most recent call last):
  File "c:\Users\NewJune\test.py", line 4, in <module>
    print(tesserocr.image_to_text(image))
  File "tesserocr.pyx", line 2400, in tesserocr._tesserocr.image_to_text
RuntimeError: Failed to init API, possibly an invalid tessdata path: C:\Python36\

 

不难看出 tesserocr.py文件没有指定正确的tessdata 路径,本人的python也并非安装在C:\Python36\,网上看到的方法都是添加D:\Program Files\Tesseract-OCR这个到系统环境变量,依然不成功,目前本人没找到如何修改tesserocr.py关联的tessdata path有效方式,但是比较简单粗暴的方法是,可以根据提示,直接手工新建C:\Python36\,并将D:\Program Files\Tesseract-OCR对应的tessdata文件夹整个拷贝到C:\Python36\即可。亲测有效。

再次在vscode下运行程序,直接可以输出”7364“,与验证码内容一致。

 

 快来扫码关注我的公众号 获取更多爬虫、数据分析的知识!

posted @ 2018-06-28 22:27  NewJune  阅读(2518)  评论(3编辑  收藏  举报