2014-09-24 186 views
0

我正在Elastic Beanstalk上成功部署我的Django(1.7),但当我在浏览器中加载它时,我得到了500个。在日志中我发现这个:在Amazon Elastic Beanstalk上部署Django。 LOGGING_INFO环境变量未设置

[Wed Sep 24 12:56:11.434509 2014] [:error] [pid 27030] [remote 172.31.6.176:0] mod_wsgi (pid=27030): Target WSGI script '/opt/python/current/app/mysite/wsgi.py' cannot be loaded as Python module. 
[Wed Sep 24 12:56:11.434557 2014] [:error] [pid 27030] [remote 172.31.6.176:0] mod_wsgi (pid=27030): Exception occurred processing WSGI script '/opt/python/current/app/mysite/wsgi.py'. 
[Wed Sep 24 12:56:11.434596 2014] [:error] [pid 27030] [remote 172.31.6.176:0] Traceback (most recent call last): 
[Wed Sep 24 12:56:11.434636 2014] [:error] [pid 27030] [remote 172.31.6.176:0] File "/opt/python/current/app/mysite/wsgi.py", line 14, in <module> 
[Wed Sep 24 12:56:11.434698 2014] [:error] [pid 27030] [remote 172.31.6.176:0]  application = get_wsgi_application() 
[Wed Sep 24 12:56:11.434721 2014] [:error] [pid 27030] [remote 172.31.6.176:0] File "/opt/python/run/venv/lib/python2.7/site-packages/django/core/wsgi.py", line 14, in get_wsgi_application 
[Wed Sep 24 12:56:11.434759 2014] [:error] [pid 27030] [remote 172.31.6.176:0]  django.setup() 
[Wed Sep 24 12:56:11.434781 2014] [:error] [pid 27030] [remote 172.31.6.176:0] File "/opt/python/run/venv/lib/python2.7/site-packages/django/__init__.py", line 20, in setup 
[Wed Sep 24 12:56:11.434813 2014] [:error] [pid 27030] [remote 172.31.6.176:0]  configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
[Wed Sep 24 12:56:11.434835 2014] [:error] [pid 27030] [remote 172.31.6.176:0] File "/opt/python/run/venv/lib/python2.7/site-packages/django/conf/__init__.py", line 46, in __getattr__ 
[Wed Sep 24 12:56:11.434867 2014] [:error] [pid 27030] [remote 172.31.6.176:0]  self._setup(name) 
[Wed Sep 24 12:56:11.434886 2014] [:error] [pid 27030] [remote 172.31.6.176:0] File "/opt/python/run/venv/lib/python2.7/site-packages/django/conf/__init__.py", line 40, in _setup 
[Wed Sep 24 12:56:11.434916 2014] [:error] [pid 27030] [remote 172.31.6.176:0]  % (desc, ENVIRONMENT_VARIABLE)) 
[Wed Sep 24 12:56:11.435013 2014] [:error] [pid 27030] [remote 172.31.6.176:0] ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings. 

我将设置文件设置为像这样的.ebextension mysite.config文件。

- option_name: DJANGO_SETTINGS_MODULE 
    value: "mysite.settings" 

我也加入了这个最文件:

import os 
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 

问题出在哪里我的设置文件应该怎么样子。我已经使用了这个好几个小时了,但我无法让它工作......我甚至不知道我的设置文件应该如何。现在它看起来像这样:

LOGGING_CONFIG = 'django.utils.log.dictConfig' 

我很确定它是设置文件是问题。如果任何人都能指出我正确的方向,我会非常感激。

回答

0

因此,在尝试了什么之后,我最终得到了要加载的示例Django项目。我改变了这一行:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings") 

这一行

os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings' 

在wsgi.py.

它为什么现在有效?

1

我也加入了这个最文件:

import os

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")

这一段代码,只需要放置在您.wsgi文件。它在其他地方没有用处。

现在,一旦你做到了这一点,这里就是为什么setdefault方法是不是做同样的东西,如手动分配的作用:

的关键问题是设定时,setdefault()方法做什么与先前使用 赋值相比, 环境变量DJANGO_SETTINGS_MODULE。在分配情况下,环境 变量始终更新。对于setdefault(),只有在 尚未设置时才会更新。

via this。希望这个清楚。

+0

好吧有道理。出于某种原因它已设置,但设置不正确。 – Gustaf 2014-09-26 02:41:03

相关问题