在 Lambda 上获取 pdftotext Python 模块 运行
Get pdftotext Python module running on Lambda
我需要在 AWS Lambda 函数中获取 3.8.6 运行 的 pdftotext
python 库。
我在 Amazon Linux AMI 上安装了库和 运行,但是当我将库文件复制到 lambda 中时,我得到:
[ERROR] ModuleNotFoundError: No module named 'pdftotext' Traceback (most recent call last)
lambda 函数将 Python 路径设置为 site-packages
目录,我已经确认在 Amazon Linux 实例上是相同的。同目录下的其他库可以正常导入
python 包是一个实际的二进制文件 (pdftotext.cpython-38-x86_64-linux-gnu.so),我假设二进制文件是在亚马逊上生成的 Linux AMI 与 lambda 不兼容?所以也许这就是它无法导入的原因。
我也尝试在 Amazon Linux docker 容器 (amazonlinux:2018.03) 中安装该库,但是在导入模块时出现以下错误:
ImportError: /root/package/lib/pdftotext.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN7poppler8document18load_from_raw_dataEPKciRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_
有人成功了吗?或者关于我可以尝试的事情/我可以 table 进行故障排除的步骤的任何想法?
根据评论。
该问题是由于使用 Amazon Linux 1 (AL1) 而不是 AL2 引起的。这是因为 Python 3.8 的 Lambda 环境是基于 AL2,而不是 AL1。
解决方案 是使用 AL2 中 pdftotext
所需的共享对象,而不是 AL1。
我需要在 AWS Lambda 函数中获取 3.8.6 运行 的 pdftotext
python 库。
我在 Amazon Linux AMI 上安装了库和 运行,但是当我将库文件复制到 lambda 中时,我得到:
[ERROR] ModuleNotFoundError: No module named 'pdftotext' Traceback (most recent call last)
lambda 函数将 Python 路径设置为 site-packages
目录,我已经确认在 Amazon Linux 实例上是相同的。同目录下的其他库可以正常导入
python 包是一个实际的二进制文件 (pdftotext.cpython-38-x86_64-linux-gnu.so),我假设二进制文件是在亚马逊上生成的 Linux AMI 与 lambda 不兼容?所以也许这就是它无法导入的原因。
我也尝试在 Amazon Linux docker 容器 (amazonlinux:2018.03) 中安装该库,但是在导入模块时出现以下错误:
ImportError: /root/package/lib/pdftotext.cpython-38-x86_64-linux-gnu.so: undefined symbol: _ZN7poppler8document18load_from_raw_dataEPKciRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEESA_
有人成功了吗?或者关于我可以尝试的事情/我可以 table 进行故障排除的步骤的任何想法?
根据评论。
该问题是由于使用 Amazon Linux 1 (AL1) 而不是 AL2 引起的。这是因为 Python 3.8 的 Lambda 环境是基于 AL2,而不是 AL1。
解决方案 是使用 AL2 中 pdftotext
所需的共享对象,而不是 AL1。