【发布时间】:2021-04-20 23:43:19
【问题描述】:
我已成功安装了一个名为 pronounceable 的包,用于 Lambda 函数。
然而,NLTK 语料库cmudict 似乎是一个无法定位的依赖项。
这意味着使用命令import pronounceable 会导致以下错误。
> Resource [93mcmudict[0m not found. Please use the NLTK Downloader
> to obtain the resource:
>
> [31m>>> import nltk
> >>> nltk.download('cmudict') [0m For more information see: https://www.nltk.org/data.html
>
> Attempted to load [93mcorpora/cmudict[0m
>
> Searched in:
> - './nltk_data'
> - '/home/sbx_user1051/nltk_data'
> - '/var/lang/nltk_data'
> - '/var/lang/share/nltk_data'
> - '/var/lang/lib/nltk_data'
> - '/usr/share/nltk_data'
> - '/usr/local/share/nltk_data'
> - '/usr/lib/nltk_data'
> - '/usr/local/lib/nltk_data'
我已经尝试过什么
1.这是我用来安装包的代码,通过创建一个层应用到我的 Lambda 函数。
# STEP 1
mkdir folder
cd folder
virtualenv v-env
source ./v-env/bin/activate
pip install pronounceable
deactivate
# STEP 2
mkdir python
cd python
cp -r ../v-env/lib64/python3.6/dist-packages/* .
cd ..
zip -r pronounceable_layer.zip python
aws lambda publish-layer-version --layer-name pronounceable --zip-file fileb://panda_layer.zip --compatible-runtimes python3.6
然后我简单地选择了生成的层并将其添加到 Lambda 函数中。
然后,按照this suggestion,我将cmudict(我手动下载到本地计算机)的内容放入文本文件中,该文件位于Lambda 根文件夹中名为nltk_data 的文件夹中。
我还尝试通过添加带有键/值NLTK_DATA 和./nltk_data 的环境变量来缓解此问题,并在函数顶部添加nltk.download('cmudict', download_dir="/var/task/nltk_data"),但无济于事。
2.我还用Cloud9打开了NLTK文件data.py并按照suggestion修改了路径,因为怀疑nltk.data.path.append()不起作用。
3.我还按照suggestion手动将下载路径设置为nltk.download('cmudict', download_dir='/tmp/'),但这似乎也不起作用。
我不知道接下来我需要做什么。
问题
我需要做些什么来确保 cmudict 可供 nltk 在我的 Lambda 函数中使用?
【问题讨论】:
标签: python-3.x amazon-web-services aws-lambda nltk aws-serverless