虽然各种Python语言编程书籍中一再强调,自从Python 3.3版本后,构建Python的Package结构,不用在每个文件夹下添加__init__.py
文件。上面这句话,仅仅针对的是从主文件夹中的主要.py来导入各个子文件夹的模块结构来说的。自己亲自试验,确实如此。
但是,若想从子文件夹中的某个.py文件导入其父文件夹中某个.py文件,则需要在子文件夹和父文件夹中都要添加上文件__init__.py
。这真是一个微小的使用Python的细节。
例如,下面目录结构:
ch08
| api.py
|__tests
| | test_api.py
| |
若在test_api.py
中写导入代码from ..api import is_valid
等,则运行后会报错。
要解决上述错误,需要在ch08和tests文件夹下分别添加文件__init__.py
。