【问题标题】:aws - "Unable to import module 'process': /var/task/numpy/core/multiarray.so: invalid ELF header"aws -“无法导入模块‘进程’:/var/task/numpy/core/multiarray.so:无效的 ELF 标头”
【发布时间】:2016-04-25 04:32:12
【问题描述】:

使用 aws lambda 在使用 numpy 模块运行脚本时收到以下错误:

无法导入模块“进程”:/var/task/numpy/core/multiarray.so: 无效的 ELF 标头

这个问题是否与 numpy 本身或 numpy 相关,特别是在 aws lambda 上。什么是无效的 ELF 标头?

编辑:

我认为这与本机代码执行有关,如本答案"invalid ELF header" when using the nodejs "ref" module on AWS Lambda中所述

【问题讨论】:

    标签: python python-2.7 amazon-web-services numpy aws-lambda


    【解决方案1】:

    问题与在我的本地计算机体系结构上编译的 multiarray.so 文件有关。启动一个 ec2 实例并使用必要的依赖项创建您的 virtualenv。这将导致它使用 Aws lambda 使用的正确架构进行编译。然后从 ec2 实例下载您的 virtualenv 并将其用于 lambda。

    【讨论】:

    • 所以解决方案是从一个新的 EC2 实例开始,创建虚拟环境,安装 numpy,然后压缩站点包?还是你拉得更多?
    • 是的,我还添加了可以在/lib64中找到的编译文件。
    • 我只是想补充一点,基于docs.aws.amazon.com/lambda/latest/dg/…,要旋转的 EC2 实例的名称应类似于(AMI 名称:amzn-ami-hvm-2016.03.3.x86_64-gp2)。如果您不知道要创建哪一个。
    【解决方案2】:

    我有类似的错误:

    /var/task/bcrypt/_bcrypt.so: undefined symbol: PyInt_FromLong
    

    以前的答案似乎不适用于我的 Pyhon:3.6 lambda。

    我成功使用了这篇文章:https://medium.com/i-like-big-data-and-i-cannot-lie/how-to-create-an-aws-lambda-python-3-6-deployment-package-using-docker-d0e847207dd6

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-06-14
      • 2021-11-20
      • 1970-01-01
      • 2015-07-11
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多