2011-09-26 110 views
0

我有功能:爲什麼我得到的消息:「模塊」對象有沒有屬性「load_source」

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): 
    [...] 

爲什麼這不工作?

+0

在兩個模塊中打印imp(在調用函數之前)並查看是否有不同的東西 –

+0

是的,我有我自己的模塊名爲imp – Nips

回答

1

您有另一個名爲imp的模塊。

要麼重新命名它,要麼將其移動到sys.path以後的標準庫模塊中,要麼完全移出sys.path,要麼重新排列sys.path

它很可能與視圖位於相同的目錄中;如果是這樣的話,最簡單的方法就是將其移動到一個目錄中,在該目錄中沒有模塊導入imp或重命名它。

相關問題