【问题标题】:No module named settings error django elastic beanstalk没有名为设置错误的模块 django elastic beanstalk
【发布时间】:2020-07-19 07:28:25
【问题描述】:

我正在尝试将 django 应用程序部署到弹性 beanstalk。 Beanstalk 在加载wsgi.py 时找不到settings 文件。我在其他一些 SO 问题中看到了这一点,但没有一个能解决我的问题。

我收到以下错误:

ModuleNotFoundError: No module named 'kairos_app.prod_settings'
Target WSGI script '/opt/python/current/app/kairos_app/kairos_app/wsgi.py' cannot be loaded as Python module.

这些是.ebextensions02_python.config文件的内容:

container_commands:
  01_migrate:
    command: "source /opt/python/run/venv/bin/activate && python3 kairos_app/manage.py migrate --noinput"
    leader_only: true
  02_collectstatic:
    command: "source /opt/python/run/venv/bin/activate && python3 kairos_app/manage.py collectstatic --noinput"

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "kairos_app.prod_settings"
    "PYTHONPATH": "/opt/python/current/app/kairos_app:$PYTHONPATH"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: kairos_app/kairos_app/wsgi.py
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "www/static/"

这就是目录结构的样子:

好像捡到了WSGIPath还行,所以不知道为什么不能捡到django设置模块路径。

【问题讨论】:

  • 嗨,我在这里遇到了类似的问题。我的项目结构看起来与您的相同,并且在 apis 文件夹中的一个(或多个应用程序)上获取 ModuleNotFoundError 。你在那里遇到过同样的问题吗?

标签: django amazon-elastic-beanstalk


【解决方案1】:

它可能正在查看父目录kairos_app

尝试改变

DJANGO_SETTINGS_MODULE: "kairos_app.prod_settings"

进入

DJANGO_SETTINGS_MODULE: "kairos_app.kairos_app.prod_settings"

"PYTHONPATH": "/opt/python/current/app/kairos_app:$PYTHONPATH"

进入

"PYTHONPATH": "/opt/python/current/app/kairos_app/kairos_app:$PYTHONPATH"

后者会影响整个运行时,因此可能会破坏。

【讨论】:

  • 我之前尝试过kairos_app/kairos_app/prod_settings.py,而不是kairos_app.kairos_app.prod_settings。为什么第一个不起作用?
  • 您需要使用模块的地址(点表示法)来引用 PYTHONPATH 中加载的内容 -> /opt/python/current/app/kairos_app 以根 kairos_app 作为基本模块。
猜你喜欢
  • 2019-05-22
  • 2020-06-08
  • 2020-05-09
  • 2020-10-13
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 2017-05-05
  • 2021-12-16
相关资源
最近更新 更多