我目前正在使用AWS Lambda。以下是代码的摘录:
import pandas as pd
import re
import nltk
from stop_words import get_stop_words
stopwords = get_stop_words('en')
nltk.download('punkt')
nltk.download('wordnet')
wn = nltk.WordNetLemmatizer()
def lemmatization(txt):
text = ([wn.lemmatize(word) for word in txt])
return text
def lambda_handler(event,context):
bucket = "aaabbb"
key = "cccddd"
s3_client = boto3.client('s3')
s3_file = s3_client.get_object(Bucket=bucket, Key=key)
s3_file_data = s3_file['Body'].read()
s3_file_data = io.BytesIO(s3_file_data)
df = pd.read_csv(s3_file_data)
df['ABC'] = df['ABC'].apply(lambda x: lemmatization(x))
print(df)然而,我总是得到这样的错误:
Unable to import module 'lambda_function': No module named 'regex._regex'我已经导入了nltk和regex包。你能帮我搬一下吗?
发布于 2020-10-23 23:47:01
一种可能的解决方案是,您的操作系统在下载依赖项时使用不同版本的Python (即3.6),而不是您的Lambda函数(即3.7)。我建议尝试下载您的lambda脚本使用的任何版本的Python,然后例如,如果我希望Python的版本是3.8,我将运行以下代码:
pip3.8 install -r requirements.txt -t aws-lib。
发布于 2021-02-13 23:14:39
我和你一样面对这个问题。导致此错误的问题是您使用的操作系统和lambda函数使用的不同。当python安装一个包时,它会根据您使用的操作系统创建已安装的文件。因此,当您使用使用linux OS创建的部署包时,它将与lambda函数一起工作。
windows用户有很多方法可以做到这一点,但我建议您使用docker容器来安装您的软件包。
具体步骤如下:
lambda<代码>G29上
ps:现在,当你在windows上执行你的代码时,它会给出一个错误,因为安装的包是为linux操作系统构建的
https://stackoverflow.com/questions/64498145
复制相似问题