【发布时间】:2019-11-28 06:39:16
【问题描述】:
我正在尝试什么
我在 Lambda 上使用的 Python 包 (OCRMYPDF) 需要 leptonica 库 liblept.so.5。在隔离导入代码时,我发现问题出在 find_library('lept') 上。打印结果返回 None。
from ctypes.util import find_library
def lambda_handler(event, context):
liblept=find_library('lept')
print("liblept:%s"%liblept)
我正在使用的 python 包需要许多本机编译的依赖项。我正在尝试使用 lambda 图层导入这些。
层结构
/opt/
/opt/bin/
/opt/lib/
/opt/lib/liblept.so.5
/opt/tesseract
我可以使用 CDLL(下面的代码)访问该文件。但我不想重写包并将每个 find_library() 替换为 CDLL。是否可以设置 find_library 的导入目录?
liblept=CDLL("/opt/lib/liblept.so.5") # found
print("liblept:%s"%liblept)
我的图层代码有效
我使用 docker 镜像来构建层。 /opt/bin 中依赖 leptonica 的文件正在运行(tesseract 运行正常,OCR 也经过测试)。
logging.info(os.system("tesseract --version"))
输出
START RequestId: d826d36c-4ce9-4b67-b501-8c9042edcf80 Version: $LATEST
tesseract 4.1.0
leptonica-1.78.0
libgif 5.1.4 : libjpeg 6b (libjpeg-turbo 1.2.90) : libpng 1.2.49 : libtiff 4.0.3 : zlib 1.2.8 : libwebp 0.3.0
Found AVX
Found SSE
END RequestId: d826d36c-4ce9-4b67-b501-8c9042edcf80
【问题讨论】:
-
你找到解决办法了吗?
标签: python aws-lambda ocr ctypes