您好我使用lambda aws部署了一个应用程序(使用无服务器框架)。 但是当我运行测试时我收到错误
START RequestId: 5bcf988a-2064-11e8-8d1e-c5a0129510f Version: $LATEST
Unable to import module 'handler':
Importing the multiarray numpy extension module failed. Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control). Otherwise reinstall numpy.
Original error was: cannot import name multiarray
我多次移除 numpy包文件夹并重新安装,但仍然无法正常工作 所以你有解决这个问题的方法吗?
代码:
import sys
import os
sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)),'env','Lib','site-packages'))
import numpy as np
import pandas as pd
import boto3
import csv
import psycopg2
def hello(event, context):
s3 = boto3.resource('s3')
return "test"
提前谢谢
答案 0 :(得分:0)
我通过改变环境解决了这个问题。 我不知道python是不可移植的。 我在Windows环境中开发了lambda函数,但lambda通常在AWS中的Linux环境中运行,这就是我的lambda无法正常工作的原因。 所以解决方案是改变环境,使用Linux代替windows
答案 1 :(得分:-1)
我在MACOSX环境上编译了代码,最近又遇到了同样的问题,甚至我将代码放在ec2上并在linux或ubuntu环境中安装了所有依赖项,错误是相同的。 https://docs.aws.amazon.com/lambda/latest/dg/current-supported-versions.html的文档给我的提示是,当前的lambda执行环境是公共Amazon Linux AMI版本(AMI名称:amzn-ami-hvm-2017.03.1.20170812-x86_64-gp2),请注意特定的版本。 AMI,即使您将Amazon Linux用作ec2实例,新旧版本也会造成问题。 因此,在更改ec2实例的版本,在其上重新编译代码并将压缩文件存储在s3之后,AWS lambda便无法成功运行。