尝试部署flask app时从beanstalk获取错误:“没有名为flask的模块”

时间:2015-09-21 20:43:33

标签: python amazon-web-services amazon-ec2 flask elastic-beanstalk

我一直试图找出这个问题一段时间,但无法弄明白。我的app结构是这样的:

myapp  
    -application.py  
    -myapp  
       -sample.css  
       -sample.js  
       -blueprints.py  
       -__init__.py  
       -__init__.pyc  
       -templates  
         -base.jinja2  
   -node_modules  
   -package.json  
   -requirements.txt  
   -static  
   -venv  
   -webpack.config.js  

我有beanstalk的python 2.7环境,我的虚拟环境也是如此。我在pip list和requirements.txt中有所有需要的包。我在eb config的yml文件中的WSGI路径设置为/myapp/application.py。我从eb日志得到的确切错误是:

mod_wsgi(pid = 2330):目标WSGI脚本'/opt/python/current/app/myapp/application.py'无法作为Python模块加载。
mod_wsgi(pid = 2330):处理WSGI脚本'/opt/python/current/app/myapp/application.py'时发生异常。
<module>中的“文件”/opt/python/current/app/cloud-dev/application.py“,第3行  来自flask导入render_template
 ImportError:没有名为flask的模块“

我在访问网站链接时遇到500错误。非常感谢帮助!

1 个答案:

答案 0 :(得分:5)

我遇到了完全相同的错误。对我有帮助的是重命名运行到'application'的Flask对象:

from flask import Flask

application = Flask(__name__)

# run the app.
if __name__ == "__main__":
    application.run()

来自Amazon EB Docs

  

使用application.py作为文件名并提供可调用的应用程序对象(在本例中为Flask对象)允许AWS Elastic Beanstalk轻松找到应用程序的代码。