gpt4 book ai didi

python - 使用无服务器的 Numpy lambda 错误

转载 作者:行者123 更新时间:2023-11-28 18:13:17 25 4
gpt4 key购买 nike

我在 mac OSX 上并在 AWS 上部署 python lambda。

我已经按照这些说明创建了一个本地环境源 venv/bin/activate。

https://serverless.com/blog/serverless-python-packaging/

我已经安装了所有的包

$ pip install numpy

Requirement already satisfied: numpy in ./venv/lib/python3.5/site-packages (1.14.2)

然后我使用

部署包
pip freeze > requirements.txt

serverless deploy

在 lambda 上运行时出错

START RequestId: ################### Version: $LATEST Unable to import module 'main': Missing required dependencies ['numpy']

另请注意:我的代码没有调用 numpy,它调用的是 quandl 而 quandl 调用的是 numpy

requirements.txt

asn1crypto==0.24.0
certifi==2018.4.16
cffi==1.11.5
chardet==3.0.4
cryptography==2.2.2
idna==2.6
inflection==0.3.1
more-itertools==4.1.0
ndg-httpsclient==0.4.4
numpy==1.14.2
pandas==0.22.0
pyasn1==0.4.2
pycparser==2.18
pyOpenSSL==17.5.0
python-dateutil==2.7.2
pytz==2018.4
Quandl==3.3.0
requests==2.18.4
six==1.11.0
urllib3==1.22

在 ec2 上运行相同的代码。看起来它的 numpy 在调用它时遇到问题。

我在 python 文件中添加了以下内容

import os
import sys

CWD = os.path.dirname(os.path.realpath(__file__))
sys.path.insert(0, os.path.join(CWD, "lib"))
# end magic four lines

错误

Traceback (most recent call last):
File "__main__.py", line 11, in <module>
import quandl
File "/home/ubuntu/bots/ssali/quandl/__init__.py", line 7, in <module>
from .model.database import Database
File "/home/ubuntu/bots/ssali/quandl/model/database.py", line 18, in <module>
import quandl.model.dataset
File "/home/ubuntu/bots/ssali/quandl/model/dataset.py", line 5, in <module>
from .data import Data
File "/home/ubuntu/bots/ssali/quandl/model/data.py", line 1, in <module>
from quandl.operations.data_list import DataListOperation
File "/home/ubuntu/bots/ssali/quandl/operations/data_list.py", line 1, in <module>
from quandl.model.data_list import DataList
File "/home/ubuntu/bots/ssali/quandl/model/data_list.py", line 2, in <module>
from .data_mixin import DataMixin
File "/home/ubuntu/bots/ssali/quandl/model/data_mixin.py", line 1, in <module>
import pandas as pd
File "/home/ubuntu/bots/ssali/pandas/__init__.py", line 19, in <module>
"Missing required dependencies {0}".format(missing_dependencies))
ImportError: Missing required dependencies ['numpy']

最佳答案

我认为这里有两个问题:

  1. AWS Lambda 只支持 Python 2.7 和 3.6,所以我们应该使用 3.6 而不是 3.5
  2. 像 Numpy 这样需要编译的包需要为 Linux 构建。如果您使用的是 Windows 或 OSX,则需要通过 Docker 安装这些包。无服务器包含一个方便的配置。确保以下内容在您的 serverless.yml 中。

来自 https://serverless.com/blog/serverless-python-packaging/

plugins:
- serverless-python-requirements

custom:
pythonRequirements:
dockerizePip: non-linux

关于python - 使用无服务器的 Numpy lambda 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49955595/

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