小编dat*_*ead的帖子

在 AWS Lambda 上使用 Pyenchant,可以加载包但不能加载提供程序字典,已在 EC2 上从源代码进行编译并提取 .so 文件

我正在尝试在 AWS 上的 Lambda 函数中使用 Python 拼写检查库 Pyenchant。Pyenchant 是 C libenchant 库的包装器,而该库又依赖于来自 Aspell 等提供商的单词词典。

在 Lambda 上运行的 python 代码中,我能够成功导入已编译的 enchant 库以及 AWS Linux EC2 实例上的 C 库 (libenchant.so),并将输出复制到我的 Lambda 部署包。

然而,当 pyenchant 库在 Lambda 上运行时,它无法加载任何需要工作的单词词典。然后我使用以下命令在 EC2 实例上安装了 Aspell:

yum install aspell-en enchant-aspell
Run Code Online (Sandbox Code Playgroud)

然后,我将以下附加 .so 文件复制到部署包的 /lib 文件夹中:

  • libaspell.so
  • libenchant_aspell.so
  • libenchant_ispell.so
  • libenchant_myspell.so
  • libenchant.so

我很确定 libenchant_aspell.so 是实际的字典,但它没有拾取它,我不知道下一步该去哪里。

下面是我的 lambda_handler python 代码:

from __future__ import print_function
import os
import sys
import re
import enchant

enchant.set_param("enchant.aspell.dictionary.path","/var/task/lib")

def lambda_handler(event, context):

    print("# List available enchant dictionary …
Run Code Online (Sandbox Code Playgroud)

python aspell pyenchant enchant aws-lambda

5
推荐指数
1
解决办法
647
查看次数

标签 统计

aspell ×1

aws-lambda ×1

enchant ×1

pyenchant ×1

python ×1