2017-02-15 2 views
2

현재 설정에도 불구하고 바르 : 내가 무엇을 수집 할 수 있습니다에서, 내 오류 로그이 오류만을 뱉어하지 않습니다이

Error running WSGI application 
KeyError: 'SECRET_KEY' 
    File "/var/www/www_optranslations_net_wsgi.py", line 24, in <module> 
    application = get_wsgi_application() 

    File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
    django.setup(set_prefix=False) 

    File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/__init__.py", line 22, in setup 
    configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 

    File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/conf/__init__.py", line 53, in __getattr__ 
    self._setup(name) 

    File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/conf/__init__.py", line 41, in _setup 
    self._wrapped = Settings(settings_module) 

    File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/conf/__init__.py", line 97, in __init__ 
    mod = importlib.import_module(self.SETTINGS_MODULE) 

    File "/home/optranslations/translation-site/optranslations/settings.py", line 24, in <module> 
    SECRET_KEY = os.environ.get('SECRET_KEY') 

    File "/home/optranslations/.virtualenvs/optl/lib/python3.5/os.py", line 725, in __getitem__ 
    raise KeyError(key) from None 

그래서, 그것은 할 수 없습니다 SECRET_KEY 환경 변수를 찾으십시오. 대화 형 Python 인터프리터에서 bash 터미널과 os.environ 명령을 모두 확인하면 키가 제대로 설정됩니다.

또한, 둘 다 시도 :

SECRET_KEY = os.environ.get('SECRET_KEY') 

그리고 :

SECRET_KEY = os.getenv('SECRET_KEY') 

를 대화 형 파이썬 콘솔에서 인쇄와에 올바른 키를 동일한 코드를 생산하고 사용.

그리고 그것은과 같이 PythonAnywhere의 지침에 따라 나의 WSGI 파일에 설정되어 내 VIRTUALENV에 대한

os.environ["SECRET_KEY"] = 'secretkeyhere' 

뿐만 아니라 내 postactivate 파일 : 그래서, 무슨 일이야

export SECRET_KEY="secretkeyhere" 

? 내 로그에서이 오류를 뱉어 내고 온라인에서 아무 것도 찾을 수 없거나 그것이 무엇인지 파악하기 시작할 수도 있습니다. 나는 그것이 내가 바라보고있는 것이라고 확신한다. 더 이상 필요하다고 생각하는 코드를 추가 할 수 있으므로 알려 주시기 바랍니다.

재미있는 편집, 지금이납니다 :

2017-02-15 07:46:27,883 :Error running WSGI application 
2017-02-15 07:46:27,884 :django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty. 
2017-02-15 07:46:27,884 : File "/var/www/www_optranslations_net_wsgi.py", line 24, in <module> 
2017-02-15 07:46:27,885 : application = get_wsgi_application() 
2017-02-15 07:46:27,885 : 
2017-02-15 07:46:27,885 : File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/core/wsgi.py", line 13, in get_wsgi_application 
2017-02-15 07:46:27,885 : django.setup(set_prefix=False) 
2017-02-15 07:46:27,885 : 
2017-02-15 07:46:27,885 : File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/__init__.py", line 22, in setup 
2017-02-15 07:46:27,885 : configure_logging(settings.LOGGING_CONFIG, settings.LOGGING) 
2017-02-15 07:46:27,885 : 
2017-02-15 07:46:27,886 : File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/conf/__init__.py", line 53, in __getattr__ 
2017-02-15 07:46:27,886 : self._setup(name) 
2017-02-15 07:46:27,886 : 
2017-02-15 07:46:27,886 : File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/conf/__init__.py", line 41, in _setup 
2017-02-15 07:46:27,886 : self._wrapped = Settings(settings_module) 
2017-02-15 07:46:27,886 : 
2017-02-15 07:46:27,886 : File "/home/optranslations/.virtualenvs/optl/lib/python3.5/site-packages/django/conf/__init__.py", line 116, in __init__ 
2017-02-15 07:46:27,886 : raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.") 

을 그래서 지금은 ImproperlyConfigured입니다. 그러나, 나는 virtualenv를 비활성화하고 다시 활성화하여 postactivate 스크립트를 다시 활성화했습니다. 나는 여전히 $ SECRET_KEY를 echo 할 수 있고, 대화 형 콘솔에서 getenv를 잘 볼 수있다.

은 또한 다음과 같은 실행하여 쉘을 장고하려고 :

python manage.py shell 
from django.conf import settings 
print(settings.SECRET_KEY) 

그리고는 물론, 그것은 올바른 키를 인쇄.

답변

1

글쎄, 그 대답은 당황 스럽다. 내 WSGI 파일은이 라인 아래 내 os.environ 선언했다 :

from django.core.wsgi import get_wsgi_application 
application = get_wsgi_application() 

그들은 그 선 위에 있어야했다, 그리고 그것은 바로 지금에 다시 찾고 분명한 이유, 일했다.