为什么django.utils.importlib.import_module不导入正确的应用程序?以及变量如何变化



我的"未安装模型或只是在某些机器上发生的,而不是其他机器上发生的"错误,当我更深入研究时,我发现问题是load_app(self, app_name, can_postpone=False)中的CC_1方法't按照Django的假设工作。

在第87行的def load_app(self, app_name, can_postpone=False)中,我添加了一些打印语句。(此处:https://github.com/django/django/blob/master/django/django/django/django/models/loading.py#l87)

    self.handled[app_name] = None
    self.nesting_level += 1
    app_module = import_module(app_name)
    print "APP--", app_name
    try:
        print "APPNAME-BEGIN", app_name, type(app_name)
        models = import_module('.models', app_name)
        print "APPNAME-END__", app_name
        print "LOADD", str(models), app_name
    except ImportError, e:

您会认为APPNAME-BEGINapp_nameAPPNAME-END__中的app_name相同...

这是输出:

2012-12-20 15:44:12.526254500 APPNAME-BEGIN users <type 'str'>
2012-12-20 15:44:12.590877500 APPNAME-END__ gradmaker
2012-12-20 15:44:12.590877500 LOADD <module 'gradmaker.models' from '/home/gradcon4/gradcon4/project/gradmaker/models.pyc'> gradmaker

app_name是如何更改的?为什么输入错误的模块?(gradmaker代替users

在什么情况下发生?

正在发生的是import X线之一正在提高ImportError

import gradmaker.models as gradmaker不正确,而是使用from gradmaker import models as gradmaker

ImportErrorimport_module称为的功能之一捕获,然后跳过。

因此,该错误发生在该应用程序中未正确导入。

固定导入线后,一切都很好。

变量没有变化,发生的事情是由于错误而导致的代码跳出了一个函数,并使输出变得怪异。

相关内容

  • 没有找到相关文章

最新更新