получение raise KeyError (key) KeyError: "секретный ключ" с django в настройках производства

у меня есть 2 отдельных файла настроек для производства и разработки и общий base.py файл настроек
base.py

SECRET_KEY = r"!@#$%^&123456"

prod.py

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

manage.py

#!/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'

помогите мне, я новичок в django и python

2 ответов


Я думаю, вы пытаетесь это локально, и у вас нет SECRET_KEY настройки в вашей среде.

установите его с помощью

export SECRET_KEY="somesecretvalue"

и потом работает python manage.py shell --settings=entri.settings.prod должно работать нормально.


Я использую ОС.getenv ('SECRET_KEY') вместо os.environ ['SECRET_KEY']

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 

моя версия python 2.7.12