2017-02-15 15 views
2

В настоящее время мои журналы ошибок не выплевывая ничего, кроме этой ошибки:Развертывание Django на PythonAnywhere и не могут использовать secret_key из среды вары несмотря на его установить

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. Проверка как с терминала bash, так и с командой os.environ в интерактивном интерпретаторе python, ключ правильно установлен.

Кроме того, я пытался как:

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

И:

SECRET_KEY = os.getenv('SECRET_KEY') 

Используя тот же код с принтом в интерактивной консоли питона производит правильный ключ.

И это установлено в моем файле WSGI в соответствии с инструкциями PythonAnywhere как так:

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

Как и в моем файле postactivate для моего virtualenv:

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 и увидеть его в порядке (и 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() 

Они должны были быть выше этих линий, и он сразу же работал, по понятным причинам, оглядываясь на него сейчас.

 Смежные вопросы

  • Нет связанных вопросов^_^