![](/img/trans.png)
[英]ModuleNotFoundError: No module named 'application' when deploying Flask app on AWS Elastic Beanstalk
[英]Python Flask application not deployable on AWS Elastic Beanstalk | No module named 'application'
web.stdout.log 中的错误消息:
Oct 15 13:03:29 ip-172-31-18-218 web: ModuleNotFoundError: No module named 'application'
Oct 15 13:03:29 ip-172-31-18-218 web: [2020-10-15 13:03:29 +0000] [4633] [INFO] Worker exiting (pid: 4633)
Oct 15 13:03:29 ip-172-31-18-218 web: [2020-10-15 13:03:29 +0000] [4626] [INFO] Shutting down: Master
Oct 15 13:03:29 ip-172-31-18-218 web: [2020-10-15 13:03:29 +0000] [4626] [INFO] Reason: Worker failed to boot.
nginx/error.log 中的错误信息
2020/10/15 13:04:21 [error] 4559#0: *19 connect() failed (111: Connection refused) while connecting to upstream, client: 172.31.42.151, server: , request: "GET / HTTP/1.1", upstream: "http://127.0.0.1:8000/", host: "172.31.18.218"
烧瓶应用程序:
# EB looks for an 'application' callable by default.
application = Flask(__name__)
@application.route('/')
def home():
return "Hello World"
@application.route('/processImage')
def index():
[Some Code...]
if __name__ == '__main__':
# Setting debug to True enables debug output. This line should be
# removed before deploying a production app.
application.run('localhost',8000,debug=True)
要求.txt
certifi==2020.6.20
chardet==3.0.4
click==7.1.2
Flask==1.1.2
idna==2.10
itsdangerous==1.1.0
Jinja2==2.11.2
MarkupSafe==1.1.1
numpy==1.19.2
opencv-python==4.4.0.44
requests==2.24.0
urllib3==1.25.10
Werkzeug==1.0.1
我的文件夹结构:
eb-flask
|- .vscode (folder)
|- images (folder)
|- application.py
|- requirements.txt
部署方式:
Deployment via the Elastic Beanstalk Web UI by uploading a .zip archive of the above described folder.
任何有关如何进一步调试或解决此问题的想法将不胜感激。 非常感谢。
您可能需要将模块添加到环境路径变量中,以便模块查找成功。 从文件/命令行运行以下命令-
import sys
import os
sys.path.append("/path_to_your_app/eb-flask")
您正在端口 8000 上运行您的应用程序。但是,EB 会期望它在端口 5000 上运行。因此,您要么更改 EB 上的默认端口,要么修改您的应用程序以在端口 5000 上运行:
application.run('localhost', 5000,debug=True)
我遇到了同样的错误。
我做的几件事是:
application = app = Flask(__name__)
。application.py
。同样非常重要的是:无论需要什么文件,都选择它们并压缩它们(在 Windows 中右键单击“发送到”->“压缩”)并上传到 beanstalk。
不要将所有必需的文件放在一个文件夹中并压缩。 这就是ModuleNotFound: No Module name 'application'
背后的原因。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.