报错描述

使用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程序 期间发现之前的方法不能解决我的问题,在原博主的基础上进行了一些修改得以解决,同时做了更详细的整理。在此感谢博主分享。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐