代码之家  ›  专栏  ›  技术社区  ›  Pramesh Bajracharya

Pytessaract图像到pdf函数在AWS lambda中不工作

  •  0
  • Pramesh Bajracharya  · 技术社区  · 5 年前

    我使用此存储库将tesseract部署为lambda层: https://github.com/bweigel/aws-lambda-tesseract-layer

    pytesseract 就像: image_to_string image_to_data 也工作得很好,没有任何打嗝。

    image_to_pdf_or_hocr 这样地:

    pdf = pytesseract.image_to_pdf_or_hocr(f'/tmp/{file_name}/{page.number}.png', extension='pdf')
    

    它不工作并抛出错误,如:

    Traceback (most recent call last):
    File "/var/task/helpers/ocr_helper.py", line 36, in save_searchable_pdf
    f'/tmp/{file_name}/{page.number}.png', extension='pdf')
    File "/var/task/pytesseract/pytesseract.py", line 432, in image_to_pdf_or_hocr
    return run_and_get_output(*args)
    File "/var/task/pytesseract/pytesseract.py", line 289, in run_and_get_output
    with open(filename, 'rb') as output_file:
    FileNotFoundError: [Errno 2] No such file or directory: '/tmp/tess_6_hu78b0.pdf'
    
    1. 上面说档案 tess_6_hu78b0.pdf 不存在。这是什么意思?我没有你的档案 tess_6_hu78b0
    2. 我要走的路

    我试过:

    我找到了需要安装的地方 libtesseract-dev

    FROM lambci/lambda:build-python3.6
    RUN sudo apt install tesseract-ocr
    RUN sudo apt install libtesseract-dev
    

    但不幸的是,这也没有起作用。

    0 回复  |  直到 5 年前
        1
  •  0
  •   Pramesh Bajracharya    5 年前

    经过18个小时的努力工作,我终于找到了答案。

    事实证明 https://github.com/bweigel/aws-lambda-tesseract-layer 没有与所有必要的文件捆绑在一起 pytesseract.image_to_pdf_or_hocr() 跑。

    所以我所做的就是 leptonica 和 tesseract

    • 配置文件夹和

    此处提供了这些必需的文件: https://github.com/prameshbajra/tessdata

    内部 ready-to-use 文件夹中有一个名为 amazonlinux-1 tesseract/share/tessdata . 你所需要做的就是把上面列出的文件粘贴到这个目录下。

    只需下载 this 回购并替换 tessdata

    注:此数据是使用tesseract 4.1.1构建的

    我希望这对未来的读者有所帮助。 快乐的编码。

    感谢本杰明·根兹(@bweigel)发表这份回购协议。你让我们的生活更轻松。

    推荐文章