代码之家  ›  专栏  ›  技术社区  ›  rawwar

python源代码的入口点是什么

  •  5
  • rawwar  · 技术社区  · 6 年前

    我试图理解python是如何工作的。所以,我选择了官方python存储库的fork Link . 我是一个初级C程序员。但是,我知道main是应用程序的入口点。因为python是用 c, c++ 为此 main 是入口点,谁能帮我看看哪个文件有 主要的 功能。所以,当我跑的时候 python.exe ,首先执行哪个函数并获取所有命令行参数?

    注释 :我并不是要一个python程序的入口点。我知道编译器刚开始逐行执行。我想知道的是,当我们运行一个代码时,python源代码中的哪个函数实际上接受了整个python代码的解释并给出一个结果。

    2 回复  |  直到 6 年前
        1
  •  3
  •   Paul Hankin    6 年前

    在档案里 Programs/python.c . https://github.com/python/cpython/blob/master/Programs/python.c

    如您所见,它所做的唯一事情就是调用另一个函数,您可以在这里找到它。 https://github.com/python/cpython/blob/master/Modules/main.c

    解析命令行参数的代码如下: https://github.com/python/cpython/blob/master/Modules/main.c#L2601

    请注意,github有一个搜索工具,因此您可以搜索“main”或“py_unixmain”并查找引用。

        2
  •  2
  •   balu    6 年前

    我想是的 this file 你要找的是:

    /* Minimal main program -- everything is loaded from the library */
    
    #include "Python.h"
    
    #ifdef MS_WINDOWS
    int
    wmain(int argc, wchar_t **argv)
    {
        return Py_Main(argc, argv);
    }
    #else
    int
    main(int argc, char **argv)
    {
        return _Py_UnixMain(argc, argv);
    }
    #endif