Python底层源码分析(一): Python启动都干了什么?
2023-02-17 22:07 作者:StepfenShawn | 我要投稿
我们从main函数开始分析:
之后是一些初始化操作, 函数执行流:
PyMain -> pymain_main -> Py_RunMain:
Py_RunMain这个函数定义了整个Python程序运行的生命周期, 我们进入最主要的函数pymain_run_python看看:
我们先来看看 pymain_repl 执行了什么:
PyRun_AnyFileFlags:
接下来到了解析Python源代码的函数了:
接下来又是一堆函数执行流:
_PyRun_AnyFileObject -> _PyRun_SimpleFileObject :
接下来是pyrun_file, 也就是词法分析, 语法分析, 翻译成 python vm code 部分了:
看来Python在启动前做了很多事情啊, 初始化线程, 获取config, check模式等等。。。我们先把主要的架构看清楚, 后面再对各个函数的细节慢慢分析吧。。。