我将Heroku-Django项目克隆到一台新的Windows计算机上。我在这台计算机上没有local_settings.py文件,因此我尝试将其设置为使用本地环境变量。
我使用heroku config:get SECRET_KEY -s >> .env
将config var放入我的.env文件中。这似乎有效。 .env文件现在显示为SECRET_KEY='mysecretkey'
。实际的密钥是正确的。
因为我在Windows上,所以我创建了一个名为Procfile.windows
的单独Procfile,其内容为:web: python manage.py runserver 0.0.0.0:8000
在我的production_settings文件中,我有这一行:SECRET_KEY = os.environ.get('SECRET_KEY')
。操作系统已导入。
当我运行heroku local -f Procfile.windows
时,我最终会收到此错误:django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
但是,它确实找到.env文件:[OKAY] Loaded ENV .env File as KEY=VALUE Format
。
我错过了什么吗?
编辑:这是我的设置模块的样子:
__ init.py __:
from .base_settings import *
from .production_settings import *
try:
from .local_settings import *
except:
pass
base_settings.py:
import os, dj_database_url
# All the basic Dango/Heroku settings.
# SECRET_KEY is not defined here as I only define it in local_settings.py and production_settings.py.
production_settings.py:
SECRET_KEY = os.environ.get('SECRET_KEY')
DEBUG = False
ALLOWED_HOSTS = ['.herokuapp.com', 'localhost']