本笔记是基于《Python学习手册-原书第五版》第二章 Python如何运行程序的个人理解。
什么是Python解释器?
解释器是一种让其他程序运行起来的程序,是代码与计算机硬件之间的软件逻辑层。
Python解释器读取Python程序,按照其中的命令执行。
Python程序是怎么执行的?
第一步,将源语句编译城字节码,发送到虚拟机(PVM)中。字节码文件保存在__pycache__子目录中,字节码文件后缀是.pyc。
第二步,PVM迭代运行字节码指令。PVM是Python运行时引擎,是实际运行脚本的组件。
Python具有那些实现方式?
1.CPython——是标准的实现。由ANSI C语言代码编写而成。运行速度最快,最完整,最新,最健全。
2.JPython——基于Java的Python。设计目的与Java编程语言集成。包含Java类,将Python源代码编译成Java字节码,并将得到的字节码定向到Java虚拟机(JVM)上。
3.IronPython——基于.NET的Python。设计目的让Python程序可以与Windows平台上的.NET框架以及Linux上的Mono编写成的应用相集成。允许Python同时扮演客户端和服务端的角色,与.NET语言进行来回访问。
4.Stackless——注重并发的Python。针对并发性做了优化,不会在C语言调用栈上保存状态,使得可以移植到较小的栈架构中,促进了coroutine——协程结构的出现。(EVE Online)
5.PyPy——注重速度的Python。是CPython标准的另一个实现,更注重性能。提供了带有即时编译器的Python快速实现。默认对Stackless和微线程支持。
6.Cython——Python和C的混合体,尝试将程序编译城使用Python/C API的C代码。
7.Shed Skin系统——Python到C++的转换器。尝试将程序翻译成C++代码。
什么是冻结二进制文件?
frozen binary——冻结二进制文件就是将Python程序转换为独立的可执行的二进制代码。这些代码可以不安装Python环境而独立运行。(类似make)