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

jCh*_*hua 5 python amazon-ec2 amazon-web-services flask amazon-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  
Run Code Online (Sandbox Code Playgroud)

我有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'时发生异常.
"文件"/opt/python/current/app/cloud-dev/application.py",第3行,<module>
来自flask导入render_template
ImportError:没有名为flask的模块"

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

小智 5

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

from flask import Flask

application = Flask(__name__)

# run the app.
if __name__ == "__main__":
    application.run()
Run Code Online (Sandbox Code Playgroud)

来自亚马逊EB Docs:

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