目前,我的錯誤日誌吐出什麼,但這個錯誤:部署的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環境變量。 從交互式Python解釋器中的bash終端和os.environ命令中檢查密鑰是否正確設置在那裏。
而且,我都嘗試:
SECRET_KEY = os.environ.get('SECRET_KEY')
和:
SECRET_KEY = os.getenv('SECRET_KEY')
使用相同的代碼與在交互式Python控制檯打印生成正確的密鑰。
,它是在我的WSGI文件設置爲每PythonAnywhere的指示,像這樣:
os.environ["SECRET_KEY"] = 'secretkeyhere'
還有在我postactivate文件爲我的virtualenv:
export SECRET_KEY="secretkeyhere"
那麼,這是怎麼回事?它只是不斷在我的日誌中吐出這個錯誤,我在網上找不到任何東西,甚至不知道它是什麼。不過,我確定這是我所忽視的。我可以添加你認爲是必需的代碼,所以請讓我知道。所以現在ImproperlyConfigured
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.")
:
編輯
有趣,現在我就在此。但是,我所做的全部都是關閉了我的virtualenv並重新加載它以再次激活postactivate腳本。我仍然可以回顯$ SECRET_KEY並且看到它很好(在交互式控制檯中也可以看到getenv)。
我也試圖通過運行Django的外殼下面:
python manage.py shell
from django.conf import settings
print(settings.SECRET_KEY)
,當然,它打印出正確的密鑰。