python - Pyinstaller 和 Tesseract OCR

标签 python ocr pyinstaller tesseract python-tesseract

我正在为我的程序使用 Tesseract OCR,我将使用 pyinstaller 将其转换为单个 .exe 文件。问题是为了让 Tesseract 工作,我需要引用我电脑上安装的程序的路径,像这样:pytesseract.pytesseract.tesseract_cmd = 'E:\\Tesseract-OCR\\tesseract'
由于这不仅仅是一个可以导入的单独库,而是一个独立程序,因此我无法将它作为“--add_data”参数传递给 pyinstaller。那么我如何制作一个单一文件的可执行文件呢?

最佳答案

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

官方编译说明在这里:

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

安装 MS Visual Studio 15(使用 c++)和 vcpkg,并通过命令提示符执行以下操作之一:

对于 64 位:
vcpkg 安装 tesseract:x64-windows-static

对于 32 位:
vcpkg 安装 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'

我还没有尝试在不同的 PC 上尝试它,所以还没有完全测试它是否按预期工作(我对编译 C++ 一无所知,tesseract 可能需要其他文件/链接仍然完好无损因为我只在构建 PC 上测试过)

关于python - Pyinstaller 和 Tesseract OCR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59829470/

相关文章:

java - 从图像中去除背景噪音,使 OCR 的文本更清晰

python - 进程陷入 PyInstaller 可执行文件循环

python - 如何通过 Selenium 和 Python 在我的页面上向下滚动?

Python Pandas 在数据框中间添加空列

python - 我可以从 SQLAlchemy 中获取纯数组而不是字典的行吗?

python Pyinstaller IOError : [Errno 13] Permission denied

python - Pyinstaller: AttributeError: 模块 'enum' 没有属性 'IntFlag'

python - 我们可以在 python 中访问 ordereddict 中的键和值吗?

python - 如何使用xml :writeFormatting of ABBYY OCR SDK in python?

image - 与 OCR 逆向工程作斗争