20

我正在尝试让 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',
]
4

6 回答 6

40

最常见的原因是您只是在运行python而不是 using python manage.py shell,这意味着您需要手动设置DJANGO_SETTINGS_MODULE环境变量,以便 Django 知道在哪里可以找到您的设置(manage.py shell自动为您执行此操作)。

在设置设置的过程中,您也有可能(但不太常见)尝试导入设置。要确定是否是这种情况,请查看您的设置文件以查找可能需要访问设置的任何导入或函数调用(包括设置文件导入的事物中的代码)。

于 2018-04-28T10:31:24.047 回答
4

试试这个xx.py

from youprojectName.wsgi import *

于 2019-04-25T06:12:25.990 回答
3

运行python manage.py shell而不是运行python以到达项目中的环境 shell。Python默认情况下不会简单地识别django已安装的应用程序。

于 2019-11-24T17:18:57.980 回答
2

如果您使用的是 windows 运行

set DJANGO_SETTINGS_MODULE= <yourProjectName>.settings

(或)导航到终端中包含设置文件的文件夹并运行

set  DJANGO_SETTINGS_MODULE=settings
于 2020-08-02T09:31:19.143 回答
1

尝试python manage.py shell而不是python在终端中进行交互环境。

于 2021-01-13T16:33:31.813 回答
1

对于仍然遇到此问题但几乎没有解决的任何人,请确保将 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

忽略波浪形的标记

于 2021-11-26T09:53:10.797 回答