字
结构如下:一个模块test
包含两个子模块test.foo
和test.bar
.
test.foo
有一个基于python文档inc()
使用so的函数是包含它的正确方法,并且可以按预期工作。test.bar.bar()
from . import bar
test.bar
但是,也有一个使用 的功能inc2
,test.foo.foo
但是当from . import foo
使用时,这两个模块都会中断。
实现这一目标的正确方法是什么?我在 python 文档或搜索中几乎找不到。
代码
测试/_初始化_.py
#empty
测试/foo.py
from . import bar
def foo():
print("I do foo")
def inc():
print(bar.bar())
测试/bar.py
from . import foo
def bar():
print("I do bar")
def inc2():
print(foo.foo())
错误 1
>>> import test.foo
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test/foo.py", line 1, in <module>
from . import bar
File "test/bar.py", line 1, in <module>
from . import foo
ImportError: cannot import name foo
错误 2
>>> import test.bar
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "test/bar.py", line 1, in <module>
from . import foo
File "test/foo.py", line 1, in <module>
from . import bar
ImportError: cannot import name bar