使用 pandas 将 Flask 应用程序部署到 Elastic Beanstalk

Posted

技术标签:

【中文标题】使用 pandas 将 Flask 应用程序部署到 Elastic Beanstalk【英文标题】:Deploying Flask Application with pandas to Elastic Beanstalk 【发布时间】:2017-02-17 11:52:22 【问题描述】:

我是 AWS 新手。尝试将一个简单的烧瓶应用程序部署到 AWS。在我包含 pandas 包之前,我没有任何问题。

即使使用最简单的应用程序,我也会收到诸如“您的 requirements.txt 文件无效”之类的错误。

我的测试应用程序非常简单: 文件夹里只有两个文件 application.py 和 requirements.txt。

Application.py 是基本的:

from flask import Flask
from pandas import DataFrame

application = Flask(__name__)

@application.route("/")
def home():
            return "hello pandas "


if __name__ == '__main__':
            application.run()

需求文件是用 pip freeze 创建的

boto3==1.4.1
botocore==1.4.60
click==6.6
docutils==0.12
Flask==0.11.1
itsdangerous==0.24
Jinja2==2.8
jmespath==0.9.0
MarkupSafe==0.23
numpy==1.11.2
pandas==0.19.0
python-dateutil==2.5.3
pytz==2016.7
s3transfer==0.1.7
six==1.10.0

Werkzeug==0.11.11

我看到一些帖子建议选择比默认的 t1.micro 更大的实例类型。我已经这样做了:

 eb create -i m4.large --timeout 100

但仍然没有运气。

如果有人成功将使用 pandas 的烧瓶应用程序部署到 AWS,请告知最佳方法。 谢谢。

【问题讨论】:

【参考方案1】:

我在使用 pandas 将 django 应用程序部署到 EBS 时遇到了同样的问题,问题是需要先安装某些 C 库。只需将其添加到您的 .ebextensions 文件夹中即可:

commands:
  install_devtools:
    command: yum -y groupinstall 'Development tools'

请注意,我相信这只适用于 T2 小号及以上的尺寸。

【讨论】:

谢谢。我试过你的建议。部署似乎成功了,但我的脚本错误提示找不到 pandas。 在运行上面的文件之前,我会通过 ssh 进入服务器并检查 pandas 是否安装正确。对我来说,这似乎仍然是一个 requirements.txt 错误,但目前无法判断。至少,如果您使用 ssh 登录,您可以避免不断部署以进行调试。 谢谢。我也试过了。我最终(现在)安装了我的烧瓶应用程序并使用没有 apache 或 beanstalk 的 python3 运行它。

以上是关于使用 pandas 将 Flask 应用程序部署到 Elastic Beanstalk的主要内容,如果未能解决你的问题,请参考以下文章

如何使用应用程序工厂将 Flask 应用程序部署到 AWS Elastic beanstalk

尝试使用 SSL 将 Flask 应用程序部署到 AWS Beanstalk:没有可用的包 mod24_ssl

如何使用 SSL 将 AWS EC2 Flask 应用程序部署到 HTTPS 端口 443?

使用数据库连接将代码部署到 Azure Web 时,Flask 应用程序无法呈现,但在本地服务器上工作正常

将使用 Celery 和 Redis 的 Flask 应用程序部署到 AWS:直接使用 Elastic Beanstalk 还是 EC2?

将简单的 Socket.io Flask 应用程序部署到 Google App Engine:仍未解决