##### 包的导入:
1. 路径检查:检查相应包的路径是否在系统的路径中
```
import sys
print(sys.path)
```
如果不在通过`sys.path.append("")`加入到路径
可以通过`print(sys.modules)`查看目前导入的包
可以通过`sys.path.insert(0, "path")`来改变python检索路径的顺序,目前path为首位检索;
检查当前目录:
```
import os
print(os.path.abspath("."))#当前目录
print(os.path.abspath(r"..")) #上一层路径
```
2. 包与导入
如果一个目录中存在多个模块,可以通过创建 `__init__.py` 文件(该文件可以为空文件)将该当前目录标识为一个包)。若多个模块放置于具有多层嵌套的目录当中,其逻辑关系为包(根目录)-> 子包(子目录)-> 模块(*.py);
绝对导入示例:
单独的模块:`import module`;
模块位于包内部(不存在子包):`from package import module`;
模块位于包内部(存在子包):`from package.subpackage import module`。
有`from __future__ import absolute_import`标识时,必须用绝对导入
相对导入(relative import)
位于同一包中的不同子包和模块,可以通过前缀.标识存在调用关系的包/模块之间的路径依赖关系并进行相对调用。示例:
同层目录的模块:`from . import module`;
模块位于同层包内部(不存在子包):`from .package import module`;
模块位于同层包内部(存在子包):`from .packge.subpackge import module`;
模块位于上一层级目录:将以上语句的前缀进行替换 `from . -> from ..`,以此类推。