运行时在Lambda中加载Python包

2024-04-19 04:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在AWS lambda上获得Gensim,但是在尝试了所有文件缩减技术(https://github.com/robertpeteuil/build-lambda-layer-python)来尝试创建层之后,它仍然不适合。因此,我决定尝试在lambda函数的运行时加载包,因为我们的函数没有很长的时间限制

因此,我首先查看了将一个venv上传到S3,然后使用排名靠前的答案的第二块从(Activate a virtualenv with a Python script)后面的脚本下载并激活它。但是,链接的脚本原来是针对python 2的,所以我查找了python 3版本(确保将activiate_this.py从virtualenv复制到普通的venv bin,因为标准的venv包不包含一个)

activator = "/Volumes/SD.Card/Machine_Learning/lambda/bin/activate_this.py"
with open(activator) as f:
    exec(f.read(), {'__file__': activator})

import numpy

在使用numpy将此脚本运行到目标venv后,我仍然收到一个“未找到模块”错误。我找不到一个好的资源来说明如何正确地做到这一点。所以我想我的问题是:在lambda运行时加载包的最佳方式是什么?如何实现


Tags: 文件lambda函数pynumpy脚本awsbin