我有两个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'
这个误差是什么意思?我该怎么解决呢?
当前回答
你可以通过添加2个print来理解:
a.py:
print(__name__)
import b
b.py:
print(__name__)
import a
然后:
$ python3 a.py
__main__
b
a
a.py最终会被加载/执行2次。一个作为__main__,一个作为a。
其他回答
不知道如何,但下面的改变排序我的问题:
我的文件名和导入名称相同,例如我的文件名为emoji.py,我试图导入表情符号。但是改变文件名解决了这个问题。
希望能有所帮助
在我使用python 2.7和numpy 1.15.0版本工作的情况下,它与
pip install statsmodels=="0.10.0"
当我从git中签出一个旧版本的存储库时,我遇到了这个问题。Git替换了我的.py文件,但留下了未跟踪的.pyc文件。由于.py文件和.pyc文件不同步,.py文件中的导入命令无法在.pyc文件中找到相应的模块。
解决方案就是删除.pyc文件,并让它们自动重新生成。
你可以通过添加2个print来理解:
a.py:
print(__name__)
import b
b.py:
print(__name__)
import a
然后:
$ python3 a.py
__main__
b
a
a.py最终会被加载/执行2次。一个作为__main__,一个作为a。
我也遇到过同样的问题。 使用重载修复。
import the_module_name
from importlib import reload
reload(the_module_name)