2015-01-22 4 views
7

I했습니다 설정 파일을 생산 및 개발과 공통 base.py을위한 2 개의 분리되는 설정 파일
base.pyKeyError를 (키) KeyError를 인상 점점 : 제작 설정에 장고와 'SECRET_KEY'을

SECRET_KEY = r"[email protected]#$%^&123456" 

prod.py

from .base import * 
SECRET_KEY = os.environ['SECRET_KEY'] 

manage.py

내가 터미널이를 입력 할 때 16,
#!/usr/bin/env python 
import os 

import sys 

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

from django.core.management import execute_from_command_line 

execute_from_command_line(sys.argv) 

:

python manage.py shell --settings=entri.settings.prod 

를 내가 얻을 오류 :

raise KeyError(key) 
KeyError: 'SECRET_KEY' 

것은 도와주세요, 내가 장고에 새로 온 사람과

+1

입니다 대신 os.environ [ 'SECRET_KEY']의 ('SECRET_KEY')를 os.getenv 사용 환경 변수? –

+0

로컬로 시도하고 있으며 환경에 SECRET_KEY 설정이없는 것 같습니다. 'export SECRET_KEY = "somevalue"'를 사용하여 설정하면 정상적으로 작동합니다. –

+0

@mu 無 예, 저는 이것을 로컬에서 실행하고 있습니다. ** base.py **에 SECRET_KEY를 설정했습니다. 해당 파일은 ** prod.py **로 가져옵니다. 충분하지 않아야하니 ?? 내가 뭘 놓치고 있니? – sidx

답변

6

내가 생각 파이썬 로컬로 시도하고 있으며 사용자 환경에 SECRET_KEY 설정이 없습니다. 이 python manage.py shell --settings=entri.settings.prod를 실행 한 후

export SECRET_KEY="somesecretvalue" 

등을 사용하여

설정은 잘 작동합니다.

0

나는

print os.getenv('SECRET_KEY') #returns None if KEY doesn't exist 
print os.getenv('SECRET_KEY', 0) #will return 0 if KEY doesn't exist 

내 파이썬 버전은 그래서, 어디는 SECRET_KEY을 설정하는 2.7.12