Actuellement, mes journaux d'erreurs crachent sur rien, mais cette erreur:Déploiement Django PythonAnywhere et ne peuvent pas utiliser secret_key de l'environnement vars bien qu'il soit réglé
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
Alors, de ce que je comprends, il ne peut pas recherchez la variable d'environnement SECRET_KEY. En vérifiant à la fois le terminal bash et la commande os.environ dans l'interpréteur interactif Python, la clé est correctement définie.
De plus, j'ai essayé les deux:
SECRET_KEY = os.environ.get('SECRET_KEY')
Et:
SECRET_KEY = os.getenv('SECRET_KEY')
En utilisant le même code pour une impression sur la console python interactif produit la bonne clé.
Et il est défini dans mon dossier wsgi selon les instructions de PythonAnywhere comme ceci:
os.environ["SECRET_KEY"] = 'secretkeyhere'
En plus dans mon dossier de postactivate pour mon virtualenv:
export SECRET_KEY="secretkeyhere"
Alors, qu'est-ce qui se passe? Il ne cesse de cracher cette erreur dans mon journal et je ne trouve rien en ligne ou même commencer à comprendre ce que c'est. Je suis sûr que c'est quelque chose que je néglige, cependant. Je peux ajouter plus de code que vous pensez est nécessaire, alors s'il vous plaît faites le moi savoir.
Modifier
Intéressant, maintenant je reçois ceci:
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.")
Alors maintenant, il est ImproperlyConfigured. Cependant, tout ce que j'ai fait a été de désactiver mon virtualenv et de le recharger pour activer à nouveau le script post-activation. Je peux toujours écrire $ SECRET_KEY et le voir très bien (et getenv dans la console interactive, aussi).
J'ai essayé aussi django shell en exécutant les éléments suivants:
python manage.py shell
from django.conf import settings
print(settings.SECRET_KEY)
Et, bien sûr, il imprime la bonne clé.