【问题标题】:Django: Deploy to ElasticBeanstalk import error on myapp.settingsDjango:部署到 myapp.settings 上的 ElasticBeanstalk 导入错误
【发布时间】:2016-06-20 13:15:48
【问题描述】:

我正在向 ElasticBeanstalk 部署一个应用程序,但遇到了一个看起来很简单的问题。错误实际上是ImportError: No module named myapp.settings,但我不知道是什么导致了这个问题。我过去部署了其他具有相同设置的 django 应用程序,以前没有遇到过这个问题。

我在下面附上了来自 eb 的错误日志以及我的 manage.py 和 .ebextensions 文件

errors from eb logs

[2016-03-07T03:10:29.648Z] INFO  [3559]  - [Application update/AppDeployStage0/EbExtensionPostBuild] : Starting activity...
[2016-03-07T03:10:30.852Z] INFO  [3559]  - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild] : Starting activity...
[2016-03-07T03:10:30.853Z] INFO  [3559]  - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Myapp] : Starting activity...
[2016-03-07T03:10:31.824Z] INFO  [3559]  - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Myapp/Command 01_collectstatic] : Starting activity...
[2016-03-07T03:10:31.894Z] INFO  [3559]  - [Application update/AppDeployStage0/EbExtensionPostBuild/Infra-EmbeddedPostBuild/postbuild_0_Myapp/Command 01_collectstatic] : Activity execution failed, because: Traceback (most recent call last):
  File "Myapp/manage.py", line 10, in <module>
  execute_from_command_line(sys.argv)
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 353, in execute_from_command_line
  utility.execute()
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 302, in execute
  settings.INSTALLED_APPS
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 55, in __getattr__
  self._setup(name)
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 43, in _setup
  self._wrapped = Settings(settings_module)
  File "/opt/python/run/venv/local/lib/python2.7/site-packages/django/conf/__init__.py", line 99, in __init__
  mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
  __import__(name)
  ImportError: No module named myapp.settings
   (ElasticBeanstalk::ExternalInvocationError)

manage.py

#!/usr/bin/env python
import os
import sys

if __name__ == "__main__":
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Sifhub.settings")

    from django.core.management import execute_from_command_line

    execute_from_command_line(sys.argv)

.ebextensions/01-django_eb.config

option_settings:
  "aws:elasticbeanstalk:application:environment":
    DJANGO_SETTINGS_MODULE: "Myapp.settings"
    PYTHONPATH: "/opt/python/current/app/Myapp:$PYTHONPATH"
  "aws:elasticbeanstalk:container:python":
    WSGIPath: "Myapp/Myapp/wsgi.py"
  "aws:elasticbeanstalk:container:python:staticfiles":
    "/static/": "subapp/static/"

【问题讨论】:

    标签: python django amazon-elastic-beanstalk


    【解决方案1】:

    我看到您的 django 应用程序名称是 Sifhub 并且您的配置文件内容 Myapp 作为您的应用程序名称。

    理想情况下,您的配置文件应该是这样的:

    option_settings:
      "aws:elasticbeanstalk:application:environment":
        DJANGO_SETTINGS_MODULE: "Sifhub.settings"
        PYTHONPATH: "/opt/python/current/app/Sifhub:$PYTHONPATH"
      "aws:elasticbeanstalk:container:python":
        WSGIPath: "Sifhub/wsgi.py"
      "aws:elasticbeanstalk:container:python:staticfiles":
        "/static/": "subapp/static/"
    

    【讨论】:

      猜你喜欢
      • 2017-08-02
      • 2014-03-02
      • 2018-07-30
      • 2018-06-16
      • 2019-04-29
      • 1970-01-01
      • 2012-08-17
      • 1970-01-01
      • 2018-03-01
      相关资源
      最近更新 更多