首页 > 解决方案 > 无法将 Tesseract 部署到 Google App Engine

问题描述

我正在使用 Tesseract 进行 OCR。当我在本地工作时它工作正常,但当我部署到 Google App Engine 时我无法让它工作。

这是部署中代码中断的行:

d = pytesseract.image_to_data(img, output_type=Output.DICT)

我从gcloud app logs tail -s得到这个错误

文件“/app/pol_flow.py”,第 1587 行,在 upload_ocr d = pytesseract.image_to_data(img, output_type=Output.DICT) 文件“/usr/local/lib/python3.6/site-packages/pytesseract/pytesseract. py”,第 409 行,在 image_to_data 如果 get_tesseract_version() < '3.05':
文件“/usr/local/lib/python3.6/site-packages/pytesseract/pytesseract.py”,第 118 行,在 wrapper._result = func(*args, **kwargs)
文件“/usr/local/lib/python3.6/site-packages/pytesseract/pytesseract.py”,第 327 行,在 get_tesseract_version 中引发 TesseractNotFoundError() pytesseract.pytesseract.TesseractNotFoundError: /app未安装或不在您的路径中

TesseractNotFoundError() pytesseract.pytesseract.TesseractNotFoundError: /app is not installed> 或者它不在你的路径中

我知道我必须将位置传递到这样的代码中:

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

但是我在进行部署时不知道 Tesseract 的安装路径。

谢谢你的帮助!

PS:我遵循了这个答案,但是当我向 App Engine 中部署的端点发出请求时,我仍然收到相同的错误:TesseractNotFoundError()

标签: pythongoogle-app-enginetesseractgcloudgoogle-app-engine-python

解决方案


您的问题的正确答案是使用 App Engine Standard 无法做到这一点。您可以使用 App Engine 灵活环境实现此目的:您可以选择 带有Dockerfile的自定义运行时,它允许您安装所需的一切,在这种情况下,只需添加.apt-get install tesseract-ocr

正如@llompalles 所建议的那样,另一种选择是使用Cloud Run 。我已经实施了他分享的解决方案,它对我有用。


推荐阅读