1.包模式,是指导入路径中含有文件夹的情况。
#存在下面目录
c:\code:
main.py
sub #文件夹
c:\code\sub:
m1.py
m2.py
#包模式
main.py:
import sub.m1 #导入路径存在文件夹 开启包模式
2.存在的问题
使用包模式后,会跳过对包目录的搜索,也就是 m1.py 若导入 m2.py 会找不到该模块
#m1.py
import m2 #wrong 同一sub包 包模式下会跳过对该包的搜索 所以找不到 m2模块
3.解决办法
1)使用绝对导入路径
#m1.py
import sub.m2 #修改为
2)使用相对导入
#m1.py
from . imort m2 #改为此
4.绝对导入 在包模式和非包模式 都可使用。
5.相对导入的包 带 from . import 的语句 测试自己作为主文件,会因为__name__属性变为main而出错。