解决django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings...问题

报错描述

使用pycarm开发django程序,,如果不在django console测试程序,而是直接在终端或者文件夹下编写程序与数据库交互,出现如下报错。

Traceback (most recent call last):
  File "E:/Users/Administrator/PycharmProjects/MyDjango/user_defined/wordsSplitTest.py", line 11, in <module>
    from index.models import DgaCount
  File "E:\Users\Administrator\PycharmProjects\MyDjango\index\models.py", line 12, in <module>
    class DgaProject(models.Model):
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\db\models\base.py", line 87, in __new__
    app_config = apps.get_containing_app_config(module)
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\apps\registry.py", line 249, in get_containing_app_config
    self.check_apps_ready()
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\apps\registry.py", line 131, in check_apps_ready
    settings.INSTALLED_APPS
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\conf\__init__.py", line 57, in __getattr__
    self._setup(name)
  File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\conf\__init__.py", line 42, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.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.

报错分析

  • 先看下的我的源代码。

这段代码是想统计数据库中‘dgaSum’这一列的所有数据和。

from django.db.models import Sum

import os
from index.models import DgaCount
def main():
    d = DgaCount.dgaSum = DgaCount.objects.aggregate(Sum('dgaSum'))
    print(d)

if __name__ =='__main__':
    main()
  • 为什么会出现上示错误呢?

当我引入modles时,是因为程序没有识别出database这个应用,虽然我已经把database应用添加到setting文件中了,但是还是需要在文件开头添加两行配置环境变量的配置语句,让程序知道该去哪儿寻找 models 中的文件。

解决方法

1

在文件头添加配置环境变量的语句,要特别主要添加顺序,以免出现不可预料的错误,搞的一头雾水。

from django.db.models import Sum

import os
import django
os.environ.setdefault('DJANGO_SETTING_MODULE', 'MyDjango.settings')
django.setup()
from index.models import DgaCount
def main():
    d = DgaCount.dgaSum = DgaCount.objects.aggregate(Sum('dgaSum'))
    print(d)

if __name__ =='__main__':
    main()

此时发现报错信息发生变化:

File "E:\Users\Administrator\Anaconda3\envs\test3.6\lib\site-packages\django\conf\__init__.py", line 42, in _setup
    % (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

2

将配置添加到pycharm中的python配置中
在这里插入图片描述
在环境变量(environment variables)这一栏添加如下信息:
在这里插入图片描述
此时去运行,完美解决!
在这里插入图片描述
**注意:**可以仔细看下看图中我标出的文件目录信息,根据自己的实际情况做修改,以便花最少的时间去解决。

本文大量参考:PyCharm中运行django程序 期间发现之前的方法不能解决我的问题,在原博主的基础上进行了一些修改得以解决,同时做了更详细的整理。在此感谢博主分享。

  • 23
    点赞
  • 68
    收藏
    觉得还不错? 一键收藏
  • 21
    评论
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值