2017-02-15 7 views
2

を設定されているにもかかわらずvarsは、私のエラーログが何もなく、このエラーを吐きされていない環境から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で印字に同じコードを使用します。

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

としてだけでなく、私のvirtualenvのための私のpostactivateファイル内:それはそうのようなPythonAnywhereの指示に従って私のWSGIファイルに設定されている

ので

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() 

彼らはそれらのラインより上でなければならなかったし、それが即座に今それを振り返って明らかな理由のために、働いていました。

関連する問題