我有两个python模块:
a.py
import b
def hello():
print "hello"
print "a.py"
print hello()
print b.hi()
b.py
import a
def hi():
print "hi"
当我运行a.py时,我得到:
AttributeError: 'module' object has no attribute 'hi'
这个误差是什么意思?我该怎么解决呢?
我有两个python模块:
a.py
import b
def hello():
print "hello"
print "a.py"
print hello()
print b.hi()
b.py
import a
def hi():
print "hi"
当我运行a.py时,我得到:
AttributeError: 'module' object has no attribute 'hi'
这个误差是什么意思?我该怎么解决呢?
当前回答
解决了
Python正在你的a.py模块中寻找a对象。
将该文件重命名为其他文件或使用
from __future__ import absolute_import
在a.py模块的顶部。
其他回答
在我使用python 2.7和numpy 1.15.0版本工作的情况下,它与
pip install statsmodels=="0.10.0"
我遇到这个错误是因为实际上没有导入模块。代码是这样的:
import a.b, a.c
# ...
something(a.b)
something(a.c)
something(a.d) # My addition, which failed.
最后一行导致一个AttributeError。原因是我没有注意到a的子模块(a.b和a.c)被显式导入,并假设import语句实际上导入了a。
让我们通过例子来看看问题和解决方案,循环依赖关系是如何到达的。 我有一个文件窗口数据生成器。ipynb执行主文件导入如下两个文件。
escape.py MutationTypes.py
escape.py已经导入MutationTypes.py文件 现在,在窗口数据生成器中。我想执行MutationTypes.py的功能,如下所示:
import escape as ESC
import MutationTypes
MutationTypes.SINGLE_RES_SUB
错误提示为AttributeErrorTraceback(最近一次调用)/tmp/ipykernel_4340/4282764781.py在<module> ----> 1 MutationTypes中。属性错误:模块“MutationTypes”没有属性“SINGLE_RES_SUB”
如何解决这个问题? 因为您已经在转义模块中导入了MutationTypes文件,下面使用转义模块使用MutationTypes文件功能
ESC.MutationTypes.SINGLE_RES_SUB
解决了
Python正在你的a.py模块中寻找a对象。
将该文件重命名为其他文件或使用
from __future__ import absolute_import
在a.py模块的顶部。
当我从git中签出一个旧版本的存储库时,我遇到了这个问题。Git替换了我的.py文件,但留下了未跟踪的.pyc文件。由于.py文件和.pyc文件不同步,.py文件中的导入命令无法在.pyc文件中找到相应的模块。
解决方案就是删除.pyc文件,并让它们自动重新生成。