内容介绍
本文重点在总结python脚本在导入包的流程。避免后期项目中环境搭建,部署,包封装,脚本编写中出现包引用错误的问题。
基本语法
以pandas中的io模块举例:
import pandas.io
from pandas import io
from . import io
(与io同文件夹脚本才可以引用到,或者将路径加入sys,不推荐)
from pandas import *
(特殊:只能引用__all__函数中内容)
__all__函数
基础过程
- 判断模块是否在sys.module字典中,通过字典的key判断。
- 如果不在sys.module字典中
+ 在sys.path,python相关环境变量中查找模块。
环境变量设置
+ 将模块加载到内 存空间。
+ 将模块__init__.py文件路径加入sys.module字典中。
- 模块加载到当前python文件的Local命名空间.。
Local参考
导入过程
- 顺序导入
- 循环导入(嵌套导入)
实际是顺序导入的延申。一个包经常要引用其它的包,形成一层层的依赖关系。其它包__ini__.py文件路径虽然在sys.module中存在,但并意味着这脚本中能直接使用,因为没有加载。
参考