Amazon web services AWS Lambda无法链接tesseract可执行文件

Amazon web services AWS Lambda无法链接tesseract可执行文件,amazon-web-services,amazon-ec2,aws-lambda,tesseract,Amazon Web Services,Amazon Ec2,Aws Lambda,Tesseract,滚动到tesseract 4的Adaptions。 我使用此链接为tesseract创建了可执行文件和依赖项库。我已经把所有的东西都拉上拉链,顺便去了S3 我正在使用lambda下载这个zip文件,将依赖项解压缩到/tmp文件夹中。现在我计划在lambdapython3平台中使用这些依赖项 我得到了这个错误 Response: { "errorMessage": "tesseract is not installed or it's not in your path", "errorTy

滚动到tesseract 4的Adaptions。 我使用此链接为tesseract创建了可执行文件和依赖项库。我已经把所有的东西都拉上拉链,顺便去了S3

我正在使用lambda下载这个zip文件,将依赖项解压缩到/tmp文件夹中。现在我计划在lambdapython3平台中使用这些依赖项

我得到了这个错误

Response:
{
  "errorMessage": "tesseract is not installed or it's not in your path",
  "errorType": "TesseractNotFoundError",
发生这种情况的原因是未设置环境变量。 我曾尝试过这样做,但无法绕过这个错误

# Setting the modules path
sys.path.insert(0, '/tmp/')
import boto3
import cv2
import numpy as np
import subprocess
os.environ['PATH'] = "{}:/tmp/pytesseract:/tmp/".format(os.environ['PATH'])
os.environ['TESSDATA_PREFIX'] = "/tmp/tessdata/"
import pytesseract
我在lambda函数中设置了这样的环境变量。但我还是犯了同样的错误。我甚至尝试设置如下图所示的变量。还是很倒霉

我确信这个lambda包可以工作,因为我已经创建了一个新的ec2实例,下载了相同的zip文件,并将库解压缩到/tmp/文件夹中。我编写了一个测试tesseract的基本测试函数。这很有效

import cv2
import pytesseract
import os

# os.environ['PATH'] = "{}:/tmp/pytesseract:/tmp/".format(os.environ['PATH'])
os.environ['LD_LIBRARY_PATH'] = '/tmp/lib:/tmp'
config = ('-l eng --oem 1 --psm 3')
im = cv2.imread('pytesseract/test-european.jpg', cv2.IMREAD_COLOR)
text = pytesseract.image_to_string(im, config=config)
print(text)
谁能告诉我我对lambda做了什么错事。
我不想压缩所有内容,因为我的压缩文件大于50MB。此外,我还想尝试将包/模块/二进制文件从S3下载到lambda并使其正常工作

显然,lambda不允许您对PATH变量进行更改

尝试将其添加到脚本中

pytesseract.pytesseract.tesseract_cmd=r'/var/task/tesseract'