python包导入详解

内容介绍

本文重点在总结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参考

导入过程

  • 顺序导入
    • 例如import pandas.io
      • 先导入pandas
      • 再导入pandas.io
  • 循环导入(嵌套导入)
    实际是顺序导入的延申。一个包经常要引用其它的包,形成一层层的依赖关系。其它包__ini__.py文件路径虽然在sys.module中存在,但并意味着这脚本中能直接使用,因为没有加载。
    参考

你可能感兴趣的:(python)