【问题标题】:No module named 'numpy.core._multiarray_umath' when using AWS Lambda使用 AWS Lambda 时没有名为“numpy.core._multiarray_umath”的模块
【发布时间】:2022-03-21 17:55:49
【问题描述】:

我刚刚将一个包含所有需要的包的 .zip 文件上传到 AWS Lambda。我使用带有 python 3.8 的虚拟环境在我的 Mac 中运行良好。 AWS Lambda 函数也有 python 3.8。但是当我在 AWS Lambda 中运行时,我得到了这个错误:

No module named 'numpy.core._multiarray_umath'

我已将实际的 numpy 版本 (1.20.2) 更改为其他版本,例如 1.19.1 和 1.18.5,但问题无法解决。

我也在使用 spacy 3.0.6 和 fastapi 0.63.0。

【问题讨论】:

  • 能贴出代码吗?
  • AWS 提供了一个 numpy 和 scipy 层,您可以在创建 Lambda 后附加该层。(来自 Lambda 控制台上的“代码”页面。)如果您使用此层,问题是否仍然存在?
  • 是的,我知道,但它的存储空间有限,我尝试导入但无法导入
  • 我猜这不是在 iOS 上运行的 lambda ????。 numpy 使用特定于操作系统的扩展。您需要在运行 lambda 的同一系统上进行 pip-install,即 (Amazon) Linux。
  • 您找到解决方案了吗?我使用 GeoLambda 构建的自定义 Lambda 层也面临同样的问题。

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


【解决方案1】:

当我遇到同样的问题时,以下步骤对我有用:

1- 下载所需的包(您可能需要不同的版本):

 - pandas-1.4.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

   - python_dateutil-2.8.2-py2.py3-none-any.whl

   - pytz-2022.1-py2.py3-none-any.whl

 - numpy-1.21.5-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl

 - If you need others ...

2-创建一个项目文件夹并将whl文件解压到该文件夹​​中。

3- 删除 *dist-info 文件夹。

4- 将源代码添加到文件夹(lambda_function.py)

5- 压缩文件夹并作为源代码 zip 文件上传到 Lambda。

你也可以看看这些链接可能对你有帮助:

https://korniichuk.medium.com/lambda-with-pandas-fd81aa2ff25e https://github.com/numpy/numpy/issues/13465#issuecomment-545378314

【讨论】:

    猜你喜欢
    • 2023-02-13
    • 2021-10-21
    • 2020-01-23
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 2021-04-21
    • 2023-04-08
    • 2022-10-30
    相关资源
    最近更新 更多