Pyinstaller и Tesseract OCR - PullRequest
       75

Pyinstaller и Tesseract OCR

0 голосов
/ 20 января 2020

Я использую Tesseract OCR для своей программы и собираюсь преобразовать ее в один файл .exe с помощью pyinstaller. Проблема в том, что для работы Tesseract мне нужно указать путь к программе, установленной на моем компьютере, например: pytesseract.pytesseract.tesseract_cmd = 'E:\\Tesseract-OCR\\tesseract'

Поскольку это не просто отдельная библиотека, которую можно импортировать, но это отдельная программа, я не могу передать ее pyinstaller в качестве аргумента --add_data. Как мне сделать однофайловый исполняемый файл тогда?

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Предполагая, что вы на Windows, я столкнулся с этой проблемой и думаю, что решил ее, скомпилировав стати c версию tesseract (которую не нужно устанавливать) и включив ее путь в виде двоичного файла в pyinstaller spe c file.

Официальные инструкции по компиляции здесь:

https://tesseract-ocr.github.io/tessdoc/Compiling.html#windows

Установите MS Visual Studio 15 (с c ++) и vcpkg и выполните одно из следующих действий в командной строке:

для 64-разрядной версии: vcpkg install tesseract: x64- windows -stati c

для 32-разрядной версии: vcpkg install tesseract: x86- windows -stati c

Исполняемый файл tesseract будет расположен в нескольких подпапках в папке vcpkg на вашем P C. Для этого файла вам также необходимо загрузить файл .trainneddata и поместить его в папку с именем «tessdata» в том же каталоге, где находится файл tesseract exe.

Создайте файл pyinstaller spe c и отредактируйте раздел Analysis (binaries = []), включив в него путь к папке, в которой находится tesseract (если вы не используете подпапку для tesseract, я думаю, вам следует необходимо добавить и tesseract.exe, и подпапку tessdata). Я также изменил inclide_binaries = True

Запустите pyinstaller и включите параметр --specpath 'yourspecfile.spe c'

Я еще не пытался попробовать его на другом P C, поэтому еще не полностью протестировал, что он работает как задумано (я ничего не знаю о компиляции c ++, могут быть дополнительные файлы / ссылки, необходимые для tesseract, которые все еще не повреждены, так как я только тестировал на сборке P C)

0 голосов
/ 29 марта 2020

, поскольку связывание всего с помощью pyinstaller может быть настоящей болью, я сделал следующие шаги:

  1. Импортированный Pytesseract в моем скрипте
  2. создал файл Exe с pyinstaller (без определения что-нибудь в моем файле spe c)
  3. в комплекте установщик Tesseract-Ocr и мой script.exe с внешним создателем установщика.

Таким образом, конечный пользователь будет иметь как установщик tesseract, так и tesseract. С внешним установщиком у вас есть много свободы, и вы также можете играть с переменной пути.

...