本機運行環境:
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“,與驗證碼內容一致。