python 运行环境
Python 是一种半编译半解释型运行环境。首先,它会在模块 "载入" 时将源码编译成字节码 (Byte
Code)。而后,这些字节码会被虚拟机在一个 "巨大" 的核心函数里解释执行。这是导致 Python 性
能较低的重要原因,好在现在有了内置 Just-in-time 二次编译器的 PyPy 可供选择。
当虚拟机开始运行时,它通过初始化函数完成整个运行环境设置:
- 创建解释器和主线程状态对象,这是整个进程的根对象。
- 初始化内置类型。数字、列表等类型都有专门的缓存策略需要处理。
- 创建 __builtin__ 模块,该模块持有所有内置类型和函数。
- 创建 sys 模块,其中包含了 sys.path、modules 等重要的运⾏期信息。
- 初始化 import 机制。
- 初始化内置 Exception。
- 创建 __main__ 模块,准备运行所需的名字空间。
- 通过 site.py 将 site-packages 中的第三方扩展库添加到搜索路径列表。
- 执行入口py 文件。执行前会将 __main__.__dict__ 作为名字空间传递进去。
- 程序执行结束。
- 执行清理操作,包括调用退出函数,GC 清理现场,释放所有模块等。
- 终止进程。