微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS Lambda:尽管包被包含为一个层,但“没有名为 pandas_datareader 的模块”

如何解决AWS Lambda:尽管包被包含为一个层,但“没有名为 pandas_datareader 的模块”

几天来一直试图在 AWS Lambda 中运行我的 lambda_function,我终于破解了;我必须寻求帮助。

操作系统:Windows 10 蟒蛇:3.7

每次我尝试在 AWS Lambda 中运行以下代码时:

import pandas_datareader
from botocore.vendored import requests
    
def handler(event,context):
        t = pandas_datareader.DataReader('0001.HK',data_source='yahoo',start='12/12/2020',end='12/12/2020')['Close'][0] #This pulls a stock price as a float value.    
    
        my_data = {'chat_id': '<CHAT_ID>','text': 't'}
        my_url = 'https://api.telegram.org/bot<BOT_ID>/sendMessage'
        requests.post(url=my_url,data=my_data)

我收到一条 lambda 错误消息,指出“无法导入模块‘index_two’:没有名为‘pandas_datareader’的模块”

这失败了很多次 - 首先,当我使用 cmd 将包直接安装到我的 Windows 10 机器上的文件夹中,然后作为层上传时,我会收到 lambda 错误,说没有名为“numpy”的包。有。该站点上的其他帖子告诉我,这是在 Windows 机器上安装软件包的问题 - 这些软件包与在 linux 环境中执行的 AWS Lambda 不兼容。所以我改为打开 bash 并尝试以这种方式安装我的文件

$ cd numpy-yy7
$ virtualenv venv --python=python3.6
$ source venv/Scripts/activate
$ pip install pandas_datareader -t .
$ deactivate

然后我用 winRAR 压缩了它,上传到 S3,作为一个层带入 Lambda,但仍然收到错误消息。

上传的层最终是所有这些文件夹的 zip 文件,与 git 一起安装。 (请看图片链接)。 [1]:https://i.stack.imgur.com/0e31P.png

我修复了 numpy 和 pandas 未被识别的问题(我认为)但无法通过 pandas_datareader 包。我使用 git bash 安装、压缩和上传软件包是否正确?这是否会在 linux 环境中安装软件包?有人提到使用 AWS EC2,谁能深入了解如何做到这一点?

否则,我们将不胜感激,建议您提供一种通过 AWS 访问亚洲市场股票数据的更好方法

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。