文章目录
1、python解释器
从官网下载python后,进行安装,在安装目录中可以看到python.exe应用程序,该程序就是一个python解释器
(1)作用:
python解释器将读取程序,按照其中的命令执行,得到结果。
解释器是代码与硬件之间的软件逻辑层。
通俗一点:python解释器将代码翻译成机器能看得到的指令。
(2)解释过程
A)源代码 编译成 字节码
字节码保存在.pyc中,但是一般来说看不到。
字节码是源代码底层的、与平台无关的表现形式,可以随意移植。
将源代码翻译成字节码指令
程序在运行时,字节码文件加载进内存。
程序在结束时,字节码文件被内存释放
这些字节码相较于源代码,运行起来速度要快得多。为什么?
因为在下一次运行程序时,如果在上次保存了字节码之后没有修改过源代码了,Python就会加载.pyc文件并且跳过编译这个步骤。
当必须要重新编译时,python会自动检查源文件和字节码文件的时间戳,如果你又保存了源代码,下次程序运行时,字节码将自动重新创建。
B)字节码发送到PVM(python virtual machine)
python虚拟机
Python Virtual Machine,简写为PVM,当有字节码文件之后,就会被发送到PVM里来执行。
这里注意,PVM并不是指的一个独立的程序,是不需要安装的。可以把PVM理解为Python的运行引擎,是一个迭代运行字节码指令的大循环,一个个的完成操作,直到结束。
从技术角度看,PVM才是“解释器”的最后一步。
python中真正拥有的只有运行时,完全不需要初始化的编译阶段,所有事情都是在程序运行时发生的。
2、冻结二进制文件
一个单独的可执行二进制程序,将程序的字节码、pvm以及任何程序所需要的python支持文件捆绑在一起形成一个单独的文件包。
py2exe可以生成冻结二进制文件
3、总结—基本概念
(1)python解释器
python解释器是运行python程序的程序
(2)源代码
源代码是为程序所写的语句:它包括了文本文件(通常以.py为后缀名)的文本
(3)字节码
字节码是python将程序编译后所得到的底层形式。python自动将字节码保存到后缀名为.pyc的文件中
(4)pvm
pvm是python虚拟机,它是python的运行时引擎解释编译得到的代码