2017-03-05 145 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