在file1.py中:
def test1():
print "hi"
在file2.py中:
from file1 import test1
def test2():
print "hello"
test1()
test2()
输出:
hi
hello
现在在文件1中,如果我包含test2,我会收到以下错误:
from file2 import test2
def test1():
print "hi"
Traceback (most recent call last):
File "file1.py", line 1, in ?
from file2 import test2
File "/root/pyt/file2.py", line 1, in ?
from file1 import test1
File "/root/pyt/file1.py", line 1, in ?
from file2 import test2
ImportError: cannot import name test2
有些人可以解释为什么以及如何使其发挥作用?
答案 0 :(得分:4)
这是一个循环导入问题。您要从file2
导入file1
,然后在file2
的顶层导入,再次导入file1
。这意味着1
无法加载,除非您导入2
并且2
无法加载,除非您导入`1。
至于如何使其发挥作用,你能解释一下你想做什么吗?你为什么不把这两个函数放在同一个模块中并一次性导入?
答案 1 :(得分:2)
您尝试访问时的名称doesn't exist in the module。