
为什么没有 init.py 也能导入?
从 Python 3.3 开始,引入了 PEP 420 (Implicit Namespace Packages) 标准。
● 旧规则(Python 3.3 之前): 如果一个目录下没有 init.py ,Python 会把它当成普通的目录,而不是包,尝试 import manage 会直接报错 ImportError 。
● 新规则(Python 3.3 及之后): Python 允许不包含 init.py 文件的目录作为包被导入。这种包被称为“命名空间包”。只要该目录位于 Python 的搜索路径( sys.path ,. 当前工作目录自动加入搜索路径)中,你就可以直接 import manage ,Python 会自动识别它为一个包。