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

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

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...