天天看點

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,

Python3.6安裝使用tesserocr檔案時遇到問題
再次在powershell下安裝:使用cd跳轉到whl檔案所在目錄,然後 執行 ”pip3 install tesserocr-2.2.2-cp36-cp36m-win_amd64.whl“,即可輕松完成安裝。
Python3.6安裝使用tesserocr檔案時遇到問題
緊接着用例子驗證如何使用:我們找到一個驗證碼圖檔: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“,與驗證碼内容一緻。

 快來掃碼關注我的公衆号 擷取更多爬蟲、資料分析的知識!