2017-03-05 56 views
1

在對本網站和其他網站進行研究之後,我創建了主題。我創建了一個模塊,如:Python模塊導入NameError

module.py

def function(var1, var2): 
    ... 
    return(var3) 

和主要代碼是:

main.py:

import module 
var4 = module.function(a, b) 

當我啓動在空閒的主文件,我有以下錯誤:

NameError: name 'function' is not defined 

我也曾嘗試: main.py:

from module import function 
var4 = function(a, b) 

,並得到了module has no attribute 'function'

是否有人有什麼不對的想法?當我試圖從同一個模塊導入常量時,我​​也有這種錯誤

+1

你確定你是從右邊的'module.py'導入的嗎? 「module .__ file__」是什麼意思?怎麼樣'dir(模塊)'。 – jonrsharpe

+0

對於這個特定的問題,這將有助於獲得有關您的項目結構的更多細節。你將會展示你正在經歷的更現實的例子。很難確定這樣的任意例子究竟出了什麼問題。 – idjaw

+0

模塊.__文件___不會返回正確的文件...是否有可能python嘗試從標準模塊中導入與我的名稱相同的模塊? 'dir(module)':'['CommandCompiler','InteractiveConsole','InteractiveInterpreter','__all__','__builtins__','__cached__','__doc__','__file__','__loader__' ,'__name__','__package__','__spec__','argparse','compile_command','interact','sys','traceback'] 我假設它是包含在模塊中的不同文件,但它不是正確的,我沒有代碼那些^^ – Dawindz

回答

1

很可能您的module與Python內置模塊的名稱相同。嘗試重新命名它,看看你是否仍然有錯誤。

編輯:import code導致解釋器導入Python的本地模塊,稱爲code而不是您寫的,導致NameError。

+0

它的工作,謝謝!雖然我有同樣的問題,與一個屬性錯誤,另一個名稱不屬於Python標準庫的模塊... 編輯:錯誤: 'AttributeError:模塊'decodeur'沒有屬性'decode'' – Dawindz

+0

如果你還沒有弄清楚,請發佈導致錯誤的確切代碼行。我在想'decode'是一個函數,你可以不用括號('decodeur.decode'而不是'decodeur.decode()')來調用它。 – stybl