首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PDFInfoNotInstalledError AWS Lambda无法用pdf2image找到波普尔路径

PDFInfoNotInstalledError AWS Lambda无法用pdf2image找到波普尔路径
EN

Stack Overflow用户
提问于 2020-06-20 08:56:26
回答 1查看 1.7K关注 0票数 1

按照这里的指南:https://www.petewilcock.com/using-poppler-pdftotext-and-other-custom-binaries-on-aws-lambda/,我能够使用EC2获得二进制文件。但是现在,对于最后一步,我似乎找不到一种方法来让pdf2image使用poppler。获取错误:

代码语言:javascript
复制
  "errorMessage": "Unable to get page count. Is poppler installed and in PATH?",
  "errorType": "PDFInfoNotInstalledError",

我试过的是:

从指南中添加带有poppler_path

  • Adding的lambda层,然后使用指南中的package.zip调用lambda层,然后用poppler_path = '/opt/lib/'

  • Adding调用convert_from_bytes() -- /lib和/bin目录--直接进入lambda,用poppler_path = '/var/task/lib/'

  • Adding调用convert_from_bytes(),使用指南中的package.zip调用lambda层,并添加映射到/opt/ 4a的环境变量路径。做同样的事情并将其映射到/opt/lib/

4b。做同样的事情并将其映射到/opt/bin/

我的羔羊为上述之一:

代码语言:javascript
复制
import json
import base64
import os
from uuid import uuid4
from pdf2image import convert_from_bytes

POPPLER_PATH = '/opt/lib/'

def text_process_handler(event, context):
    document = bucketHelper.get_bucket_object('<Bucket>', '<document>.pdf')
    images = convert_from_bytes(document,dpi=150, poppler_path=POPPLER_PATH)

    return {
        "statusCode": 200,
        "body": json.dumps({
            "message": "Successful request."
        }),       
    }

我的package.zip看起来像:

代码语言:javascript
复制
+--lib
|  +--libpoppler.so.70
|  +--libtiff.so.5
|  +--etc...
+--bin
|  +--pdftoppm
|  +--pdftotext
|  +--etc...
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-22 13:08:50

理解问题

在过去的两天里,我一直在研究这个问题,甚至深入到pdf2image包中去了解错误发生的原因。

这里是什么导致了错误: pdf2image python包使用子流程库来运行二进制文件,比如(pdfinfo,pdftocairo,...etc)

它运行了一个类似于pdfinfo /path/to/pdf/file的Linux命令,在压缩后的二进制文件似乎在chmod -R 750上(在我的例子中),这阻止了子进程库运行导致错误“拒绝权限”的命令,然后返回pdf2image包来告诉您所面临的相同错误。

如何解决:

在压缩二进制文件之前,通过运行chmod -R 777 .确保文件mods在777上

然后,在运行方法时,convert_from_path()poppler_path设置为二进制扩展。

就是这样

注释:我创建了一个层,只包含要在函数.

中使用的popplet-utils二进制文件。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62483716

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档