gpt4 book ai didi

python - AWS Lambda Python3.7函数-numpy : cannot import name 'WinDLL'

转载 作者:行者123 更新时间:2023-12-04 12:56:43 24 4
gpt4 key购买 nike

我在lambda中设置了一个函数,该函数从.zip文件运行python脚本。我已经创建了一个virtualenv,并将所有必需的软件包包括在.zip文件中(来自Lib\site-packages文件夹)。

以下是脚本中使用的软件包的import语句:

import requests
import boto3
import logging
import os
from botocore.exceptions import ClientError
from pprint import pprint
import pandas as pd
from datetime import datetime
import s3fs

当我尝试运行lambda函数时,出现以下错误:
START RequestId: e302cee0-3c51-453a-84c1-6eb1f9c123a0 Version: $LATEST
[ERROR] Runtime.ImportModuleError: Unable to import module 'export-dev': Unable to import required dependencies:
numpy: cannot import name 'WinDLL' from 'ctypes' (/var/lang/lib/python3.7/ctypes/__init__.py)
END RequestId: e302cee0-3c51-453a-84c1-6eb1f9c123a0
REPORT RequestId: e302cee0-3c51-453a-84c1-6eb1f9c123a0 Duration: 1.65 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 70 MB


我没有在代码中明确使用 ctypesWinDLL或任何相关软件包。

最佳答案

如果您的代码打包的依赖版本不正确,则AWS Lambda会引发错误,这可能取决于操作系统(lambda在Linux上运行)和python版本。

根据您的要求,是 Pandas 向您抛出错误。要在lambda上运行 Pandas ,您需要包括以下软件包:

Pandas
-为linux编译的代码,这是lambda运行的代码。您可以在这里https://pypi.org/project/pandas/#files下载.whl文件的“manylinux”版本,该版本与您的python lambda版本相匹配。

  • 例如如果您正在运行py3.7,则获取pandas-0.25.3-cp37-cp37m-manylinux1_x86_64.whl
  • 将.whl文件的内容解压缩到lambda文件夹的根文件夹中。这是lambda需要的库版本
  • Pandas 0.25+的注释,您还需要包括pytz软件包,请参见下面关于请求
  • 的注释

    numpy
    -现在您可以通过在lambda控制台上安装“图层”来获取lambda(已针对py3.7进行了测试),请参见下面的屏幕截图。
  • 似乎还没有py3.8的图层,因此您需要从pypi下载正确的.whl文件,就像 Pandas https://pypi.org/project/numpy/#files

  • 关于请求的旁注
  • 请注意,这里的https://pypi.org/project/requests/#files软件包只有一个“none-any”版本,这意味着不需要编译源代码,因此您可以安全地包含从pip
  • 获得的版本。
  • 这适用于 Pandas 的pytz依赖关系以及

  • 在AWS控制台中安装图层的屏幕快照

    adding a layer im lambda
    select layer

    关于python - AWS Lambda Python3.7函数-numpy : cannot import name 'WinDLL' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57333103/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com