Итак, в основном я пытаюсь создать простое приложение flask, в котором мы можем использовать pytesseract для распознавания изображений и возврата данных в виде строки. А также я упаковываю все приложение в файл .exe с помощью pyinstaller после обфускации файлов python с помощью pyarmor.
Я также скопировал папку pytesseract и вставил ее рядом с файлами, чтобы добавить ее в файл run.spe c во время создания .exe, так как мне нужно связать эту зависимость с файлом .exe. Я получаю следующую ошибку при выполнении файла .exe
pytesseract.pytesseract.TesseractError: (1, 'Error opening data file C:\\Users\\Akash\\AppData\\Local\\Temp\\_MEI87082\\Tesseract-OCR\\tessdata\\e13b.traineddata Please make sure the TESSDATA_PREFIX environment variable is set to your "tessdata" directory. Failed loading language \'e13b\' Tesseract couldn\'t load any languages! Could not initialize tesseract.')
. Для решения этой проблемы я добавил следующую строку для установки переменной среды:
os.environ['TESSDATA_PREFIX']='Tesseract-OCR/tessdata/'
и также пытались решить проблему добавления tessdata, относящегося к атрибуту config функции image_to_string()
, следующим образом:
tessdata_dir_config = r'--tessdata-dir "Tesseract-OCR/tessdata/"'
content = pytesseract.image_to_string(image, lang='e13b', config=tessdata_dir_config)
print(content)
Но все же .exe-файл выдает ту же ошибку.
И также решить проблемы с путями Я использовал следующую функцию для установки абсолютного пути к файлам.
def resource_path(relative_path):
""" Get absolute path to resource, works for dev and for PyInstaller """
import os,sys
try:
# PyInstaller creates a temp folder and stores path in _MEIPASS
base_path = sys._MEIPASS
except Exception:
try:
base_path = sys._MEIPASS2
except Exception:
base_path = os.path.abspath(".")
#print("base_path",base_path)
#print("relative_path",relative_path)
return os.path.join(base_path, relative_path)
Я надеюсь, что этой информации достаточно, чтобы ответить на вопрос, и если вам нужна дополнительная информация, просто задайте ее и ответите
Заранее спасибо.