假设我正在编写具有以下目录结构的库代码:
ref.toString()
为了更好地组织我创建了一个子目录:
- mylibrary/
|
|-----foo.py
|-----bar.py
|-----baz.py
|-----__init__.py
我希望所有客户端代码都可以继续工作而不进行更新,因此我想更新 init .py,以使导入不会中断。
我尝试将其添加到 init .py:
- mylibrary/
|
|-----foobar/
| |-----foo.py
| |-----bar.py
|-----baz.py
|-----__init__.py
现在,如果我打开外壳,我可以做:
from foobar import foo
但是,如果我这样做:
from mylibrary import foo
print(foo.Foo)
我收到没有名为mylibrary.foo的模块错误。 这是我实际示例的回溯:
from mylibrary.foo import Foo
有人可以解释这种行为吗?