使用 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?