使用无服务器的Numpy lambda错误

2024-05-23 20:54:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我在macosx上,正在AWS上部署pythonlambda。在

我已经按照这些说明创建了一个本地env source 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)

然后我使用

^{pr2}$

在lambda上运行时出错

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

还要注意:我的代码不是调用numpy,而是调用quandl,quandl调用的是numpy

要求.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上运行相同的代码。看起来它的小宝贝打电话有问题。在

我将下面的内容添加到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']

Tags: infrompyimportnumpyhomedatamodel
1条回答
网友
1楼 · 发布于 2024-05-23 20:54:53

我认为这里有两个问题:

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

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

plugins:
  - serverless-python-requirements

custom:
  pythonRequirements:
    dockerizePip: non-linux

相关问题 更多 >