1、包
模块是对外提供功能的
如果这个模块勾搭能提供的功能足够多 多到一个文件写不下
把对外提供的功能根据提供的内容不同 分成几个文件 把这些文件放在一个文件夹下 形成了包
直接导入包 imort sys print(sys.path) 使用绝对路径 导入一个包相当于执行了包下面的__init__.py form new_pac import glance 绝对路径 被直接执行的文件与包的关系必须是固定的 一旦发生改变,包内的所有关系都要重新制定 跨包引用
相对导入 绝对导入
在glance/api/version.py #绝对导入 from glance.cmd import manage manage.main() #相对导入 from ..cmd import manage manage.main()
包就是py模块的集合
自带__init__.py文件
py2包中必须有一个__init__.py文件
能不能导入一个包:要看sys.path中的路径下有没有这个包
从包中导入模块:把包与包之间的关系写清楚 精确到模块 就一定能导入
直接导入一个包,并不会导入包下的模块,而是执行这个包下的__init__.py文件
如果对导入还有更高的要求
可以对包中的__init__.py文件做定义
绝对路径导入的方式
相对路径导入的方式,使用相对路径导入的模块不能作为脚本执行