为什么我收到消息:'module'对象没有属性'load_source'

时间:2011-09-26 09:12:35

标签: python django

我有功能:

def load_from_file(filepath, expected_class):

    mod_name, file_ext = os.path.splitext(os.path.split(filepath)[-1])
    py_mod = imp.load_source(mod_name, filepath)

在templatetags文件中,没关系。

但是当我将此功能复制/粘贴到我的视图时,我收到错误:

'module' object has no attribute 'load_source'

我的示例视图:

import os, imp

def get_module(request, position):
    [...]
    imod = load_from_file(settings.PROJECT_ROOT + '/core/manager/modules/' + mod.type.fileview + '.py', 'ModuleManager')
    [...]

def load_from_file(filepath, expected_class):
    [...]

为什么这不起作用?

1 个答案:

答案 0 :(得分:1)

您有另一个名为imp的模块。

重命名,将其移至sys.path中的某个位置,而不是标准库模块或完全移出sys.path,或重新排列sys.path

它最有可能与您的观看在同一目录中;如果是这种情况,最简单的方法就是将其移动到没有模块导入imp或重命名的目录。