1、import导入模块,不是将一个文件插入到另一个文件中,它额外做了以下三方面工作:
(1)搜索找到模块文件
使用标准模块搜索路径找到该模块文件,并没有指定文件所在路径,可以是以点号分隔的相对路径名。
(2)编译成字节码(需要时)
检查模块文件的时间戳,如果比字节码pyc时间晚,说明模块文件已经修改,则重新编译成字节码。如果‘没有发现模块文件的源文件,只有pyc,则跳过源文件,不编译。
(3)执行模块代码
这3方面工作只会在第一次导入时进行。
模块文件的所有代码得到运行。
2、python将导入的模块存储在sys.modules字典中,并在第一次导入操作时检查该表,如果已经导入,在字典中将找到,于是不会执行1中讲述的3个工作。
3、python的模块搜索路径4部分:
(1)程序的主目录
运行的程序顶层脚本文件所在路径。
(2)PYTHONPATH路径
环境变量
(3)标准链接库目录
python默认存放标准库的路径

c:\python\lib\sitepackages
/usr/local/lib/site-python

(4)任何.pth文件内容
一个文本文件,每行一个路径
放在python安装目录或python标准库路径

 以上4部分组成了sys.path一个python内置列表变量

python3精要(34)-import工作原理相关推荐

  1. 1.34.FlinkX\工作原理\快速起步|1.35.Flink资料

    1.34.FlinkX 1.34.1.什么是FlinkX 1.34.2.工作原理 1.34.3.快速起步 1.34.3.1.运行模式 1.34.3.2.执行环境 1.34.3.3.打包 1.34.3. ...

  2. 神经网络原理与实例精解,神经网络计算工作原理

    神经网络算法原理 4.2.1概述人工神经网络的研究与计算机的研究几乎是同步发展的. 1943年心理学家McCulloch和数学家Pitts合作提出了形式神经元的数学模型,20世纪50年代末,Rosen ...

  3. JVM 垃圾回收器工作原理及使用实例介绍

    2019独角兽企业重金招聘Python工程师标准>>> 垃圾收集基础 Java 语言的一大特点就是可以进行自动垃圾回收处理,而无需开发人员过于关注系统资源,例如内存资源的释放情况.自 ...

  4. websocket工作原理

    websocket工作原理 websocket是什么? websocket是一套类似于http的协议. 扩展: http协议:\r\n分割.请求头和请求体\r\n分割.无状态.短连接. {'GATEW ...

  5. struts2的核心和工作原理

    在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...

  6. 详解HashMap的内部工作原理

    本文将用一个简单的例子来解释下HashMap内部的工作原理.首先我们从一个例子开始,而不仅仅是从理论上,这样,有助于更好地理解,然后,我们来看下get和put到底是怎样工作的. 我们来看个非常简单的例 ...

  7. Struts自定义拦截器拦截器工作原理

    0.拦截器的调用原理: 拦截器是一个继承了序列化接口的普通接口.其工作原理是讲需要被拦截的对象作为参数传到intercept()方法内,在方法内部对此对象进行处理之后再执行原方法.intercept( ...

  8. Hadoop 之 MapReduce 的工作原理及其倒排索引的建立

    一.Hadoop 简介 下面先从一张图理解MapReduce得整个工作原理 下面对上面出现的一些名词进行介绍 ResourceManager:是YARN资源控制框架的中心模块,负责集群中所有的资源的统 ...

  9. [转]Sandboxie 的工作原理

    Sandboxie 的工作原理 术语解释 Sandboxie 4.x 工作原理的一个示意图 hx1997 解说 Sandboxie 4.x 的工作原理 Sandboxie 3.x 的工作原理 术语解释 ...

最新文章

  1. 计组-CISC/RISC小节
  2. bilstm+crf中文分词_基于LSTM的中文分词模型
  3. 怎么检查计算机网络是连接,怎么检测网络打印机是否与电脑连接成功【检测方法】...
  4. [JavaScript]使用document.createDocumentFragment优化性能
  5. java websocket下载_java-websocket.jar免费版
  6. PyCharm5.0.2最新版破解注册激活码
  7. html映射共享文件夹,怎么在DOS下映射共享文件夹为本地磁盘
  8. 等价于什么_从来就没有什么等价交换
  9. Git提交空文件夹的技巧
  10. linux脚本彩色提示,在shell脚本里显示带颜色的字(linux)
  11. python热力相关系数图_【Python可视化6】Seaborn之heatmap热力图
  12. 计算机专业学校课程改革,中专学校计算机专业课程改革初探
  13. intel和ATT汇编格式区别
  14. 最长不含重复字符的子字符串(C++)
  15. Maven之(九)依赖关系
  16. c++——ignore()函数
  17. 新手建站免费空间及其使用体验
  18. vep加密视频破解转换为mp4教程
  19. pytest之命名规则和运行方式
  20. android实现手机端控制电脑PPT播放的APP(一)

热门文章

  1. windown下linux子系统的安装和卸载
  2. 配置 yum 源的两种方法
  3. Android Gradle manifestPlaceholders 占位符详解
  4. jQuery-helloWorld
  5. 字符串,枚举,数值之间的转换
  6. mount: unknown filesystem type 'ntfs'(转载)
  7. 从一次线下读书会获得的收获
  8. nodejs 开发,手把手开始第一个服务器程序(原生)
  9. mongodb基本语句
  10. 浅谈Python中的编码规则