簡體   English   中英

Celery 上的 Heroku 應用程序錯誤:raise ImproperlyConfigured(“SECRET_KEY 設置不能為空。”)

[英]Heroku application error on Celery: raise ImproperlyConfigured(“The SECRET_KEY setting must not be empty.”)

我正在嘗試在 Heroku 上部署我的 Django 應用程序。 每當我去我的應用程序時,我都會收到一個錯誤:

2020-09-06T20:31:59.000436+00:00 app[web.1]: raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
2020-09-06T20:31:59.000477+00:00 app[web.1]: django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty

我現在有兩個設置文件,所以在我的項目文件夾中包含wsgi.py 我有一個名為settings/的文件夾,它是:

settings
--common.py
--development.py
--productions.py

在我的production.py我有:

from register.settings.common import *
import os
import django_heroku

DEBUG = False

ALLOWED_HOSTS = ['0.0.0.0', 'localhost', '127.0.0.1','appname.heroku.com']

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

STATICFILES_STORAGE = 'whitenoise.storage.CompressedManifestStaticFilesStorage'


django_heroku.settings(locals())

在我的wsgi.pymanage.py我有:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'register.settings.production')

現在我已經從儀表板添加了 Postgres 附加組件,並且可以使用 Heroku CLI 檢查我是否也擁有它。

我還添加了www.myapp.com的自定義域名,我不知道這是否是導致問題的原因。

為了推動掌握,我做了:

heroku config:set DISABLE_COLLECTSTATIC=1

進而:

git push heroku master

是什么導致了這個問題? 當我執行python manage.py run server我也得到錯誤:

raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

當我檢查 Heroku 日志時,我也在我的 Heroku 日志中收到此錯誤,我該如何設置密鑰?

編輯 2

問題似乎與我的celery.py文件有關,但是,我嘗試將設置更改為指向production.py (在我的項目根文件夾中注冊):

from __future__ import absolute_import
import os
from celery import Celery
from django.conf import settings
import django

app = Celery('register')

app.config_from_object('django.conf:settings', namespace='CELERY')
app.autodiscover_tasks(settings.INSTALLED_APPS)

在我的manage.py我有:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'register.settings.development')但是,命令manage.py runserver有效,現在我收到一個錯誤:

8:52:21 PM web.1 |      raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
8:52:21 PM web.1 |  django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.

在我的 wsgi.py 文件的這一行中:

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'register.settings.production') application = get_wsgi_application()

看起來您只是沒有設置SECRET_KEY

您嘗試從settings模塊的環境中導入它,但這取決於現有的名為SECRET_KEY的環境變量:

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

在 Heroku 上,設置此環境變量的最佳方法是設置一個config var 這可以通過 Heroku CLI 完成:

heroku config:set SECRET_KEY=some_value

或在網絡儀表板中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM