【问题标题】:ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configuredImproperlyConfigured:请求设置 INSTALLED_APPS,但未配置设置
【发布时间】:2018-10-09 00:35:27
【问题描述】:

我正在努力让 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 的交互模式下做的。

标签: django restframeworkmongoengine


【解决方案1】:

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

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

【讨论】:

  • 天哪,你说得对……我一定是疯了……谢谢!
【解决方案2】:

在你的xx.py试试这个

from youprojectName.wsgi import *

【讨论】:

  • 使用 daphne 运行 django-channels 时出现此错误。在您的帮助下,我将所有 wsgi 详细信息导入到我的 asgi 文件中,感谢您,现在它可以完美运行了!
  • 这解决了我的问题——谢谢!
【解决方案3】:

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

【讨论】:

    【解决方案4】:

    如果你使用的是windows运行

    set DJANGO_SETTINGS_MODULE= <yourProjectName>.settings
    

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

    set  DJANGO_SETTINGS_MODULE=settings
    

    【讨论】:

    • 在 shell 中,在 config.py 中还是在命令行中?在 shell 中这样做会产生语法错误,所以我不知道人们应该把这个集合放在哪里。
    【解决方案5】:

    尝试在终端中使用python manage.py shell 而不是python 以实现交互环境。

    【讨论】:

      【解决方案6】:

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

      忽略波浪线

      【讨论】:

        猜你喜欢
        • 2019-12-02
        • 1970-01-01
        • 2020-09-27
        • 2013-03-22
        • 1970-01-01
        • 2020-04-12
        • 2020-08-25
        • 2020-03-07
        • 2017-10-21
        相关资源
        最近更新 更多