无法让瓶子在Elastic Beanstalk上运行

时间:2013-04-27 23:43:25

标签: python flask bottle elastic-beanstalk

我有一个用bottle编写的网站,我想通过亚马逊的Elastic Beanstalk部署它。我跟着tutorial for deploying flask,我希望它是相似的。 我尝试通过制作requirements.txt来使说明适应瓶子:

bottle==0.11.6

并用以下代码替换了application.py文件的基本版本:

from bottle import route, run
@route('/')
def hello():
    return "Hello World!"
run(host='0.0.0.0', debug=True)

我按照教程中的说明更新到此版本,当我写eb status时,它说它是绿色的,但是当我转到URL时,没有任何加载。它只是挂在那里。我在最后尝试了run()方法,如上所示,以及它是如何在瓶子hello world应用程序中编写的(即run(host='localhost', port=8080, debug=True)),似乎都不起作用。我还尝试了@route('/hello')以及@route('/')

我去用烧瓶代替(就像亚马逊教程所说的那样)并且它工作正常。这是否意味着我不能使用带有弹性豆茎的瓶子?或者我能做些什么才能让它发挥作用?

非常感谢, 亚历

编辑: 有了yychedee的帮助,我最终使用以下应用程序文件来使用它:

from bottle import route, run, default_app
application = default_app()
@route('/')
def hello():
    return "Hello bottle World!"

if __name__ == '__main__':
    application.run(host='0.0.0.0', debug=True)

1 个答案:

答案 0 :(得分:7)

WSGI服务器是否可能在application内寻找application.py变量?这就是我理解它适用于Flask的方式。

application = bottle.default_app()

这里的应用程序变量是WSGI application as specified in PEP 333。它是一个可调用的环境和start_response函数。因此Flask和Bottle WSGI应用程序具有完全相同的界面。

可能......但后来我很困惑为什么你需要来调用run