配置不当:请求设置 INSTALLED_APPS,但未配置设置
ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured
我正在努力让 MongoDB 和 Django 以我希望的方式相处。
这是我在尝试从 rest_framework_mongoengine.
导入视图集时遇到的错误
整个错误如下所示:
ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
找不到 settings.py
还是什么?如果是这样我不知道为什么!也就是说,为什么当时其他模块没有出现这个问题?
这是我的INSTALLED APPS
INSTALLED_APPS = [
'rest_framework',
'rest_framework_mongoengine',
'mongoengine.django.mongo_auth',
'rest_framework.authtoken',
'corsheaders',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_extensions',
'core',
'core.essences.user',
'core.essences.user.authentication',
'core.essences.test_result',
]
最常见的原因是您只是 运行 python
而不是使用 python manage.py shell
,这意味着您需要手动设置 DJANGO_SETTINGS_MODULE
环境变量所以 Django 知道在哪里可以找到您的设置(manage.py shell
会自动为您完成)。
也有可能(但不太常见)您在设置设置的过程中试图导入设置。要确定是否属于这种情况,请查看您的设置文件以查找可能需要访问设置的任何导入或函数调用(包括您的设置文件导入的内容中的代码)。
在您的 xx.py
中试试这个
from youprojectName.wsgi import *
运行 python manage.py shell
而不是 运行 python
以达到项目中的环境 shell。 Python
默认情况下不会简单地识别 django
个已安装的应用程序。
如果您正在使用 windows 运行
set DJANGO_SETTINGS_MODULE= <yourProjectName>.settings
(或) 在终端中导航到包含设置文件的文件夹,然后 运行
set DJANGO_SETTINGS_MODULE=settings
在交互式环境的终端中尝试 python manage.py shell
而不是 python
。
对于仍然遇到此问题且几乎无法解决的任何人,请确保将 setdefault DJANGO_SETTINGS_MODULE 移至脚本文件的顶部。
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_crazy_service.settings')
django.setup()
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.core.asgi import get_asgi_application
忽略波浪标记
我正在努力让 MongoDB 和 Django 以我希望的方式相处。 这是我在尝试从 rest_framework_mongoengine.
导入视图集时遇到的错误整个错误如下所示:
ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
找不到 settings.py
还是什么?如果是这样我不知道为什么!也就是说,为什么当时其他模块没有出现这个问题?
这是我的INSTALLED APPS
INSTALLED_APPS = [
'rest_framework',
'rest_framework_mongoengine',
'mongoengine.django.mongo_auth',
'rest_framework.authtoken',
'corsheaders',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django_extensions',
'core',
'core.essences.user',
'core.essences.user.authentication',
'core.essences.test_result',
]
最常见的原因是您只是 运行 python
而不是使用 python manage.py shell
,这意味着您需要手动设置 DJANGO_SETTINGS_MODULE
环境变量所以 Django 知道在哪里可以找到您的设置(manage.py shell
会自动为您完成)。
也有可能(但不太常见)您在设置设置的过程中试图导入设置。要确定是否属于这种情况,请查看您的设置文件以查找可能需要访问设置的任何导入或函数调用(包括您的设置文件导入的内容中的代码)。
在您的 xx.py
from youprojectName.wsgi import *
运行 python manage.py shell
而不是 运行 python
以达到项目中的环境 shell。 Python
默认情况下不会简单地识别 django
个已安装的应用程序。
如果您正在使用 windows 运行
set DJANGO_SETTINGS_MODULE= <yourProjectName>.settings
(或) 在终端中导航到包含设置文件的文件夹,然后 运行
set DJANGO_SETTINGS_MODULE=settings
在交互式环境的终端中尝试 python manage.py shell
而不是 python
。
对于仍然遇到此问题且几乎无法解决的任何人,请确保将 setdefault DJANGO_SETTINGS_MODULE 移至脚本文件的顶部。
import os
import django
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_crazy_service.settings')
django.setup()
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.core.asgi import get_asgi_application
忽略波浪标记