Elastic Beanstalk 未检测到我的 WSGIPath - ModuleNotFoundError

问题描述

我正在尝试将我的 odoo 实例部署到 Elastic Beanstalk,但收到以下错误消息:

Jan 11 23:08:24 ip-172-31-31-143 web: ModuleNotFoundError: No module named 'setup/wsgi'
Jan 11 23:08:24 ip-172-31-31-143 web: During handling of the above exception,another exception occurred:
Jan 11 23:08:24 ip-172-31-31-143 web: Traceback (most recent call last):
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/arbiter.py",line 583,in spawn_worker
Jan 11 23:08:24 ip-172-31-31-143 web: worker.init_process()
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/workers/gthread.py",line 92,in init_process
Jan 11 23:08:24 ip-172-31-31-143 web: super().init_process()
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/workers/base.py",line 119,in init_process
Jan 11 23:08:24 ip-172-31-31-143 web: self.load_wsgi()
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/workers/base.py",line 144,in load_wsgi
Jan 11 23:08:24 ip-172-31-31-143 web: self.wsgi = self.app.wsgi()
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/app/base.py",line 67,in wsgi
Jan 11 23:08:24 ip-172-31-31-143 web: self.callable = self.load()
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py",line 49,in load
Jan 11 23:08:24 ip-172-31-31-143 web: return self.load_wsgiapp()
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/app/wsgiapp.py",line 39,in load_wsgiapp
Jan 11 23:08:24 ip-172-31-31-143 web: return util.import_app(self.app_uri)
Jan 11 23:08:24 ip-172-31-31-143 web: File "/var/app/venv/staging-LQM1lest/lib/python3.7/site-packages/gunicorn/util.py",line 362,in import_app
Jan 11 23:08:24 ip-172-31-31-143 web: raise ImportError(msg % (module.rsplit(".",1)[0],obj))
Jan 11 23:08:24 ip-172-31-31-143 web: ImportError: Failed to find application,did you mean 'setup/wsgi:application'?

这是我的 .ebextension 配置文件

option_settings:
  aws:elasticbeanstalk:container:python:
    WsgiPath: setup/wsgi.py:application

文件夹结构:

odoo
-.ebextensions
-...
-setup
--...
--wsgi.py
-...

我尝试了很多不同的方法解决这个问题,但都没有成功:

解决方法

根据 gunicorn docs 需要一个点路径,所以这是我需要放入 WSGIPath 的内容:

option_settings:
  aws:elasticbeanstalk:container:python:
    WSGIPath: setup.wsgi:application

注意:这会导致部署 Odoo 时出现更多错误,但请等到我可以再次发布,因为这是一个不同的问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...