前提・実現したいこと
PythonとTesseractで作成した文字認識ツールを配布したいです。
発生している問題・エラーメッセージ
pyinstallerでexe化はできましたが、 exeを別PCで実行するとpyocrが見つけられずエラーが発生します。 ("No OCR tool found"のメッセージが表示される) どのように対応すればいいでしょうか?
該当のソースコード
from PIL import Image import os import sys import pyocr import pyocr.builders import tkinter, tkinter.filedialog def Main(args): imgExts = [".jpg",".jpeg",".bmp",".png",".tif",".tiff"] tools = pyocr.get_available_tools(); if len(tools) == 0: print("No OCR tool found"); sys.exit(-1); tool = tools[0]; for i in range(1,len(args)): arg = args[i]; filePath, fileExt = os.path.splitext(arg) #If file is not a imagefile then skip if (fileExt in imgExts) == 0: continue out_path = arg + ".txt"; txt = tool.image_to_string( Image.open(arg), lang = "jpn", builder = pyocr.builders.TextBuilder(tesseract_layout=6) ) if out_path == "None": print(txt); os.system("Pause"); else: with open(out_path, mode = 'w') as f: f.write(txt); args = sys.argv if len(args) > 1: Main(args) else: root = tkinter.Tk() root.withdraw() fTyp =[("画像ファイル","*.jpg;*.jpeg;*.bmp;*.png;*.tif;*.tiff")] iDir = os.path.abspath(os.path.dirname(__file__)) #iDir = os.path.dirname(sys.executable) file = tkinter.filedialog.askopenfilenames(filetypes = fTyp,initialdir = iDir) args = list(file) if len(args) > 0: args.insert(0,__file__) Main(args)
試したこと
拡張子を.pyから.pywに変更したり、
installerの引数の -window --onefile --cleanを付けたり、消したりしましたが、
エラーは解消できません。
補足情報(FW/ツールのバージョンなど)
python 3.7.4
Tesseract v5.0.0-alpha.20190708