无法使用Flask & Elastic Beanstalk导入scipy库。

问题描述 投票:0回答:1

我试图在AWS上使用Elastic Beanstalk建立一个Flask网络应用。我已经按照教程进行了操作 此处 而这工作得很好。我现在想扩展Flask web应用,这工作很好,直到我的 import scipy.spatial as spatial当这是我导入语句的一部分时,运行eb open就会超时。我收到

>>>> HTTP ERROR 504

即使使用 scipy 导入,在本地运行 webapp 也绝对正常,只是当我尝试部署到 beanstalk 时,它就不想工作了。以下是我的代码

import os
import requests
from bs4 import BeautifulSoup
import pandas as pd
import scipy.spatial as spatial  ##### Removing this and everything works!

from flask import Flask
from flask_cors import CORS
from flask_restful import Resource, Api
from flask_jsonpify import jsonify

# print a nice greeting.
def say_hello(username = "World"):
    df = pd.DataFrame({"a":[1,2,3]})
    return '<p>Hello %s!</p>\n' % username

# some bits of text for the page.
header_text = '''
    <html>\n<head> <title>EB Flask Test</title> </head>\n<body>'''
instructions = '''
    <p><em>Hint</em>: This is a RESTful web service! Append a username
    to the URL (for example: <code>/Thelonious</code>) to say hello to
    someone specific.</p>\n'''
home_link = '<p><a href="/">Back</a></p>\n'
footer_text = '</body>\n</html>'

# EB looks for an 'application' callable by default.
application = Flask(__name__)

# add a rule for the index page.
application.add_url_rule('/', 'index', (lambda: header_text +
    say_hello() + instructions + footer_text))

# add a rule when the page is accessed with a name appended to the site
# URL.
application.add_url_rule('/<username>', 'hello', (lambda username:
    header_text + say_hello(username) + home_link + footer_text))

# run the app.
if __name__ == "__main__":
    # Setting debug to True enables debug output. This line should be
    # removed before deploying a production app.
    application.debug = True
    application.run()

我已经尝试将环境的命令超时时间从600秒增加到900秒,尽管超时错误发生在600秒过去之前。

python amazon-web-services flask scipy amazon-elastic-beanstalk
1个回答
1
投票

对了,我不知道为什么会这样,但我更新了我的requirements.txt中的scipy版本,应用程序就像预期的那样工作了!我想知道为什么会这样。

最初我有

scipy==1.4.1

现在我有

scipy==1.2.3

我不知道为什么这能解决部署问题,尤其是1.4.1在本地完美运行的情况下。如果有人有什么想法,或者如果这是一个错误,我应该报告,这将是很好的知道!

© www.soinside.com 2019 - 2024. All rights reserved.