2015-01-22 13 views
7

Sono 2 file di impostazioni separate per la produzione e lo sviluppo e di un comune file di impostazioni base.py
base.pyottenere alzare KeyError KeyError (chiave): 'SECRET_KEY' con Django sulle impostazioni di produzione

SECRET_KEY = r"[email protected]#$%^&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) 

Quando entro questo nel terminale:

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

ottengo l'errore:

raise KeyError(key) 
KeyError: 'SECRET_KEY' 

Aiutami, Sono nuovo di Django e Python

+1

Allora, dove stai impostando il SECRET_KEY variabile d'ambiente? –

+0

Penso che lo stiate provando localmente e non abbiate l'installazione SECRET_KEY nel vostro ambiente. Impostalo usando 'export SECRET_KEY =" somevalue "', e quindi dovrebbe funzionare bene. –

+0

@mu 無 Sì, lo sto eseguendo localmente. Ho impostato 'SECRET_KEY' in ** base.py **. Quel file è importato in ** prod.py **. Non dovrebbe bastare ?? Cosa mi manca? – sidx

risposta

6

penso lo stai provando localmente e non hai l'installazione SECRET_KEY nel tuo ambiente.

Set utilizzando

export SECRET_KEY="somesecretvalue" 

e quindi eseguire python manage.py shell --settings=entri.settings.prod dovrebbe funzionare bene.

0

Io uso os.getenv ('SECRET_KEY'), al posto di 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 

mia versione 2.7.12 Python è

Problemi correlati