RuntimeError:模型类 nose.util.C 未声明显式 app_label

Posted

技术标签:

【中文标题】RuntimeError:模型类 nose.util.C 未声明显式 app_label【英文标题】:RuntimeError: Model class nose.util.C doesn't declare an explicit app_label 【发布时间】:2019-03-17 22:38:33 【问题描述】:

仅当我运行单元测试时,是什么导致我的 django 应用程序出现此错误?为什么它认为nose.util.C 是模特?

RuntimeError:模型类nose.util.C 未声明显式app_label,并且不在INSTALLED_APPS 中的应用程序中,或者在加载应用程序之前已导入。

【问题讨论】:

我无法发表评论,但我在***.com/a/56723920/1305080 添加了我的答案,因为听起来这实际上并没有解决,而且这个和那个可能与我的。 【参考方案1】:

您可能有一个名称中包含 Test 的模型。鼻子是包裹类和混淆 Django。

jwhitlock on github explains,

我目前的猜测是,nose 正在检测它认为应该运行测试的模型类 - 可能是因为它被命名为 Test、TestFoo 或 FooTest,并且它把它包装在了移植类中,这吓坏了 Django 的模型加载器。如果是这种情况,如果你重命名类,或者不进行 Python 路径操作,或者添加 __test__= False 类声明,它可能会起作用。

另一种选择是使用nose.tools 中的@nottest 来装饰类:

from nose.tools import nottest

@nottest
class Testacean(Model):
    ...

【讨论】:

以上是关于RuntimeError:模型类 nose.util.C 未声明显式 app_label的主要内容,如果未能解决你的问题,请参考以下文章

RuntimeError:模型类 xxx.xxx 未声明显式 app_label 且不在 INSTALLED_APPS 中的应用程序中

RuntimeError:模型类 myapp.models.class 未声明显式 app_label 并且不在 INSTALLED_APPS 中的应用程序中

RuntimeError:模型类 django.contrib.sites.models.Site 未声明显式 app_label 且不在 INSTALLED_APPS 中的应用程序中

PyTorch:RuntimeError:输入、输出和索引必须在当前设备上

RuntimeError:CUDA 错误:触发了设备端断言 - BART 模型

PyTorch 模型训练:RuntimeError:cuDNN 错误:CUDNN_STATUS_INTERNAL_ERROR