SECRET_KEY 设置不能为空 - django+pycharm
Posted
技术标签:
【中文标题】SECRET_KEY 设置不能为空 - django+pycharm【英文标题】:The SECRET_KEY setting must not be empty - django+pycharm 【发布时间】:2017-06-04 21:14:34 【问题描述】:当然,我搜索了一些帖子,但没有一个有帮助。即使是最接近的也无济于事。
我目前正在使用 pyCharm 使用虚拟环境安装 django。
因为我尝试了很多方法,但没有运气使用 pycharm 运行项目
但是,如果我在终端中使用python manage.py runserver
执行此操作,则服务器运行正常。在所有设置之后不知何故在 pyCharm 中,它只是不让我运行。我在pycharm中哪里设置错了?
不管怎样,我收到了这个错误
raise ImproperlyConfigured("The SECRET_KEY setting must not be empty.")
django.core.exceptions.ImproperlyConfigured: The SECRET_KEY setting must not be empty.
我的 manage.py,因为一些帖子正在谈论这个,但我看到它设置正确
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "CodingEntrepreneurs.settings")
try:
from django.core.management import execute_from_command_line
except ImportError:
# The above import may fail for some other reason. Ensure that the
# issue is really that Django is missing to avoid masking other
# exceptions on Python 2.
try:
import django
except ImportError:
raise ImportError(
"Couldn't import Django. Are you sure it's installed and "
"available on your PYTHONPATH environment variable? Did you "
"forget to activate a virtual environment?"
)
raise
execute_from_command_line(sys.argv)
我的 settings.py(不用多说,我确实有 KEY)
# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'SECRET_KEYSECRET_KEYSECRET_KEYSECRET_KEYSECRET_KEY'
# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
`
我的文件夹结构
我的运行调试配置
我的 django 框架设置
【问题讨论】:
【参考方案1】:由于这是 1 月 20 日的问题,我认为它已经解决了。不过,我想分享我对同一问题的修复。
我在这里遇到了同样的问题。我已经挣扎了一段时间。最后,Environment Variables
似乎有问题,如您的第二个屏幕截图所示 (Run/Debug Configurations
)
我已经通过更新 Environment Variables
路径来修复它
DJANGO_SETTINGS_MODULE=portfolio; <..crop..>
到
DJANGO_SETTINGS_MODULE=portfolio.settings; <..crop..>
我必须将settings
添加到DJANGO_SETTINGS_MODULE
路径。
【讨论】:
如果您将 IntelliJ Ultimate 与 python 包一起使用,则会出现相同的问题。将 .settings 添加到 DJANGO_SETTINGS_MODULE 可以解决问题。 很好,在“Django 控制台”设置中设置 DJANGO_SETTINGS_MODULE 也为我解决了这个问题。谢谢! 这对我没有帮助。但是在 intellij 配置中的环境变量中设置 SECRET_KEY 是有效的。 @AbhayManiyar intelliJ 的配置可能不是存储您的密钥的最佳位置,并且会让您在其他计算机上部署/打开项目时遇到麻烦。如果您在 django 设置文件中正确设置了 SECRET_KEY 并且您的设置文件已正确加载,那么它应该可以正常工作。你所做的不是一个正确的解决方案,而是一个糟糕的解决方法恕我直言。 @Nrzonline 我完全同意你的观点,但是在加载设置文件时我遇到了错误,这就是为什么要采用这种解决方法。【参考方案2】:看起来 PyCharm 不知道您的设置文件在哪里。本质上,如果您曾经使用 runserver 并看到类似的密钥错误,则说明您的设置没有正确加载。
在 django 配置窗口中,设置定义是一个文件夹/目录。那应该是您的设置文件的路径。 manage.py
定义了路径,Pycharm 没有。
此外,如果您右键单击项目根目录并选择“将目录标记为”>“源根目录”。这将帮助 Pycharm 自己解决问题。您还可以标记默认模板目录,或排除目录。
我还建议在项目中使用小写的应用(文件夹)名称。
最后,您的项目结构看起来与大多数人习惯的“标准”有些不同。您可能应该看起来有类似的东西;
- CodingEntrepreneurs
-- .venv
-- myproj
--- myapp
然后在 Pycharm 中,您将从 myproj
(而不是 CodingEntrepreneurs
)创建一个项目,并且 myproj
将被标记为您的源根目录。
阅读这篇关于项目结构的文章; http://www.revsys.com/blog/2014/nov/21/recommended-django-project-layout/
除此之外,您还可以通过 python manage.py runserver --settings=CodingEntrepreneurs.settings
指定要运行的设置文件
【讨论】:
我也尝试过右键项目作为根目录但没有运气:( @Dora 尝试指定设置路径;python manage.py runserver --settings=CodingEntrepreneurs.settings
是的,这与在终端中使用 python manage.py runserver
相同。奇怪...我明白你所说的结构是如何不同的。这更奇怪,我喜欢其他 2 个项目设置的设置完全相同的结构我设置 pycharm 的方式与其他两个项目相同,并且一直在查看结构差异,但找不到任何这就是为什么它让我如此困扰很多:(如果我需要重新启动服务器,在终端中继续输入python manage.py runserver
很烦人,但最糟糕的是我不能使用pycharm的调试模式:(【参考方案3】:
我遇到了同样的问题,结果证明我是问题所在:
我在 settings.py 文件的顶部设置了 SECRET_KEY = 'mysecretkey' 但没有进一步删除 Django 默认值:
# Make this unique, and don't share it with anybody.
SECRET_KEY = os.environ.get('SECRET_KEY')
...所以变量每次都会被覆盖。
希望这可以帮助像我一样愚蠢并偶然发现同样问题的人
【讨论】:
以上是关于SECRET_KEY 设置不能为空 - django+pycharm的主要内容,如果未能解决你的问题,请参考以下文章
django.core.exceptions.ImproperlyConfigured:设置 SECRET_KEY 环境变量