django.core.exceptions.ImproperlyConfigured:请求的设置CACHES,但未配置设置。您必须定义环境变量 - python

我已经尽力解决了这个问题,现在我已经开始梳头了。
我收到此错误:

django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

当我这样做时,我的脚本运行良好:

python3 ./manage.py runserver

但是,每当我尝试运行测试时,都会出现上述错误...
我使用的是VirtualEnv,它不全局继承任何东西,一切都已安装(具有正确的版本),并且在我的manage.py中设置了:

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "<appname>.settings")

我正在使用PyCharm Proffesional进行开发,并且尝试在IDE和Shell中运行测试。
在外壳中,我正在使用:

python3 manage.py test     

外壳未找到任何测试。该测试是基础测试,目前我并没有真正为它的内容而烦恼,因为它是我所处的环境。 更新:我已经解决了外壳问题。测试必须通过以下方式定义:

def test_<name>():

但是,这并不能解决我的PyCharm问题。
我也打电话给:

settings.configure()

告诉我它已经配置好了。
请注意,我在Django上使用任何数据库我而不是,并且我已在设置中注释了适当的内容。

完整的错误是:

  Traceback (most recent call last):
  File "/root/kiloenv/lib/python3.4/site-packages/django/conf/__init__.py", line 38, in _setup
    settings_module = os.environ[ENVIRONMENT_VARIABLE]
  File "/usr/lib/python3.4/os.py", line 631, in __getitem__
    raise KeyError(key) from None
KeyError: 'DJANGO_SETTINGS_MODULE'

During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
      File "/home/<username>/Documents/<dirname>/<appname>/tests.py", line 1, in <module>
        from django.test.utils import setup_test_environment
      File "/root/virtualenv/lib/python3.4/site-packages/django/test/__init__.py", line 5, in <module>
        from django.test.client import Client, RequestFactory
      File "/root/virtualenv/lib/python3.4/site-packages/django/test/client.py", line 11, in <module>
        from django.contrib.auth import authenticate, login, logout, get_user_model
      File "/root/virtualenv/lib/python3.4/site-packages/django/contrib/auth/__init__.py", line 6, in <module>
        from django.middleware.csrf import rotate_token
      File "/root/virtualenv/lib/python3.4/site-packages/django/middleware/csrf.py", line 14, in <module>
        from django.utils.cache import patch_vary_headers
      File "/root/virtualenv/lib/python3.4/site-packages/django/utils/cache.py", line 26, in <module>
        from django.core.cache import get_cache
      File "/root/virtualenv/lib/python3.4/site-packages/django/core/cache/__init__.py", line 69, in <module>
        if DEFAULT_CACHE_ALIAS not in settings.CACHES:
      File "/root/virtualenv/lib/python3.4/site-packages/django/conf/__init__.py", line 54, in __getattr__
        self._setup(name)
      File "/root/virtualenv/lib/python3.4/site-packages/django/conf/__init__.py", line 47, in _setup
        % (desc, ENVIRONMENT_VARIABLE))
    django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

我已经在和sudo 下运行了PyCharm,以确保该问题不是权限,因为我将环境存储在root下。

编辑:我刚刚发现我的不使用Django的测试运行良好,但是Pycharm仍然引发了几次失败。这些失败不是单独的测试,它们只是我在这里提到的错误(有341个与Django不相关的测试)。我只有一个使用Django的测试,它将无法初始化并抛出上述错误。

希望我一直在抱怨

参考方案

如果您使用的是PyCharm Pro,则可以通过操作“运行Django控制台...”来测试您的应用。单击“测试”后,它将提示您输入要测试的应用程序。

要么

在“运行/调试”配置中创建Django测试。

Django BigInteger自动递增字段作为主键? - python

我目前正在建立一个涉及大量集体智慧的项目。每个访问该网站的用户都将创建一个唯一的配置文件,然后将他们的数据用于为自己和其他用户计算最佳匹配。默认情况下,Django创建一个INT(11)id字段来处理模型的主键。我担心这会很快溢出(即,大约2.4b个设备在未事先设置Cookie的情况下访问了该页面)。如何在MySQL中将其更改为BIGINT并在Django自…

Django Python日期时间设置为午夜 - python

我有django对象的日期时间,但可以是一天中的任何时间。它可以是一天中的任何时间,但我需要将时间设置为00:00:00(另一个日期设置为23:59:59,但原理是相同的)end_date = lastItem.pub_date 当前的结束日期是2002-01-11 12:34:56我需要怎么做才能将其更改为00:00:00?我试过了:end_date.ho…

Django:使用contenttypes框架的一般关系示例? - python

我已经多次浏览了有关contenttypes框架的Django文档,但我对它的理解不足以在项目中实现泛型关系。我一直在寻找有关此事的在线示例或教程,但找不到一个。称我为哑巴,但在这方面我需要一些帮助(请不要仅通过链接到文档来回答问题)。基于在线资源的缺乏,我相信如果您用一个完整的例子来回答这个问题,您的答案可能是迄今为止有关django通用关系(奖金!)的最…

Django:错误:您无权访问该端口 - python

我是整个安装的新手,请保持友善。在dev上,该命令通常可以正常工作,但是自从我尝试使用Django的不同命令以来,某些东西就出错了。python manage.py runserver 0.0.0.0:80 我没有使用此端口的权限了。我可以使用端口8080,但将端口添加到url中通常的主机名末尾时,网站无法正常工作。当我使用端口80时,无论如何我都无需在UR…

django-getlist() - python

我刚刚发布了这个问题jQuery - passing arrays in post request,在发布请求中我不发送数组,但是jQuery代码没有问题。问题在于在django中接收到POST请求。我确实喜欢这个def portfolio_add(request): ukeys = request.POST.getlist('ukeys'…