django.core.exceptions.ImprperlyConfigured 解决方案
django.core.exceptions.ImprperlyConfigured solution
我想知道为什么会出现此错误:
django.core.exceptions.ImproperlyConfigured: 请求设置 INSTALLED_APPS,但未配置设置。在访问设置之前,您必须定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。
这是我的代码:
from main_app.models import student
std1 = student(name='tom', fullname='scholz')
std1.save()
print(student.objects.all())
运行 服务器和迁移没有任何问题。但是当涉及到 运行 .py 文件(由我自己制作)时,就会出现这样的错误。
这个问题仅仅是因为Django 不知道在哪里可以找到所需的设置。
因为它是 [Documentation][1] 提到的:
When you use Django, you have to tell it which settings you’re using. Do this
by using an environment variable, DJANGO_SETTINGS_MODULE.
根据文档,您应该通过定义环境变量来做到这一点(通知 Django 有关设置)。
据我所知,面对这个错误应该做什么,我们提供了您可以采取的不同解决方案列表:
1-在操作系统中定义一个环境变量([link][2]).
2- 如果您使用的是虚拟环境;在 activate.bat
中设置新的环境变量
set "DJANGO_SETTINGS_MODULE=<your_proj_name>.settings"
这样,每当你激活虚拟环境时,这个变量就会被自动定义。
3-(你做的方式!)在每个 python 文件中;编写定义该环境变量的命令。
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<your_proj_name>.settings')
但是如果你使用第三种方法,那么你把命令放在哪里真的很重要(在第二种情况下,当然是第一种情况,我们根本不关心!)。
所以你应该注意不要在脚本中的该命令之前使用 Django。
(有些人想知道为什么使用这个命令后还是报同样的错误,原因是他们把那行代码放在了之前用过Django的地方)
你可能会问为什么在使用迁移时等等;你没有遇到这个错误。如果我们看一下 manage.py,原因就会很清楚
因为那里有那个命令(上面列表的第三种方法)
但是你
[1]: https://docs.djangoproject.com/en/4.0/topics/settings/#designating-the-settings
[2]: https://www.computerhope.com/issues/ch000549.htm
我想知道为什么会出现此错误:
django.core.exceptions.ImproperlyConfigured: 请求设置 INSTALLED_APPS,但未配置设置。在访问设置之前,您必须定义环境变量 DJANGO_SETTINGS_MODULE 或调用 settings.configure()。
这是我的代码:
from main_app.models import student
std1 = student(name='tom', fullname='scholz')
std1.save()
print(student.objects.all())
运行 服务器和迁移没有任何问题。但是当涉及到 运行 .py 文件(由我自己制作)时,就会出现这样的错误。
这个问题仅仅是因为Django 不知道在哪里可以找到所需的设置。 因为它是 [Documentation][1] 提到的:
When you use Django, you have to tell it which settings you’re using. Do this
by using an environment variable, DJANGO_SETTINGS_MODULE.
根据文档,您应该通过定义环境变量来做到这一点(通知 Django 有关设置)。
据我所知,面对这个错误应该做什么,我们提供了您可以采取的不同解决方案列表:
1-在操作系统中定义一个环境变量([link][2]).
2- 如果您使用的是虚拟环境;在 activate.bat
中设置新的环境变量 set "DJANGO_SETTINGS_MODULE=<your_proj_name>.settings"
这样,每当你激活虚拟环境时,这个变量就会被自动定义。
3-(你做的方式!)在每个 python 文件中;编写定义该环境变量的命令。
os.environ.setdefault('DJANGO_SETTINGS_MODULE', '<your_proj_name>.settings')
但是如果你使用第三种方法,那么你把命令放在哪里真的很重要(在第二种情况下,当然是第一种情况,我们根本不关心!)。 所以你应该注意不要在脚本中的该命令之前使用 Django。 (有些人想知道为什么使用这个命令后还是报同样的错误,原因是他们把那行代码放在了之前用过Django的地方)
你可能会问为什么在使用迁移时等等;你没有遇到这个错误。如果我们看一下 manage.py,原因就会很清楚 因为那里有那个命令(上面列表的第三种方法)
但是你 [1]: https://docs.djangoproject.com/en/4.0/topics/settings/#designating-the-settings [2]: https://www.computerhope.com/issues/ch000549.htm