Python将模块移到子目录不破坏现有的导入结构

假设我正在编写具有以下目录结构的库代码:

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

有人可以解释这种行为吗?

相关文章

Python中的函数(二) 在上一篇文章中提到了Python中函数的定...
Python中的字符串 可能大多数人在学习C语言的时候,最先接触...
Python 面向对象编程(一) 虽然Python是解释性语言,但是它...
Python面向对象编程(二) 在前面一篇文章中谈到了类的基本定...
Python中的函数(一) 接触过C语言的朋友对函数这个词肯定非...
在windows下如何快速搭建web.py开发框架 用Python进行web开发...