Pyinstaller 和 Tesseract OCR

Mir*_*rah 4 python ocr tesseract pyinstaller python-tesseract

我的程序使用 Tesseract OCR,我将使用 pyinstaller 将其转换为单个 .exe 文件。问题是,为了让 Tesseract 工作,我需要引用我的计算机上安装的程序的路径,如下所示:pytesseract.pytesseract.tesseract_cmd = 'E:\\Tesseract-OCR\\tesseract'

由于这不仅仅是一个可以导入的单独库,而且是一个独立程序,因此我无法将其作为“--add_data”参数传递给 pyinstaller。那么如何制作一个单文件可执行文件呢?

Zst*_*r33 7

假设您使用的是 Windows,我遇到了这个问题,并认为我通过编译 tesseract 的静态版本(不需要安装)并将其路径作为二进制文件包含在 pyinstaller 规范文件中来解决它。

官方编译说明在这里:

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

安装 MS Visual Studio 15(带有 c++)和 vcpkg 并通过命令提示符执行以下命令之一:

对于 64 位:vcpkg install tesseract:x64-windows-static

对于 32 位:vcpkg install tesseract:x86-windows-static

tesseract 可执行文件将位于 PC 上 vcpkg 文件夹内的几个子文件夹中。使用该文件,您还需要下载 .trainneddata 文件并将其放置在与 tesseract exe 位于同一目录中的名为“tessdata”的文件夹中。

创建一个 pyinstaller 规范文件并编辑 Analysis(binaries=[]) 部分以包含 tesseract 所在的文件夹路径(如果您没有使用 tesseract 的子文件夹,我认为您需要添加 tesseract.exe 和tessdata 子文件夹)。我还改变了inclide_binaries=True

运行 pyinstaller 并包含选项 --specpath 'yourspecfile.spec'

我还没有尝试在不同的电脑上尝试它,所以还没有完全测试它是否按预期工作(我不知道有关编译 c++ 的任何信息,tesseract 可能还需要额外的文件/链接,这些文件/链接仍然完好无损)因为我只在构建 PC 上进行过测试)