什么是python源代码的入口点

时间:2018-06-06 07:23:02

标签: python cpython

我想了解python是如何工作的。所以,我拿了官方python存储库的fork,可以在以下Link获得。我是初学c程序员。但是,据我所知,main是应用程序的入口点。由于python是用c, c++编写的,main是入口点,任何人都可以帮助我找到具有main函数的文件。所以,当我运行python.exe时,首先执行哪个函数获取所有命令行参数?

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

2 个答案:

答案 0 :(得分:3)

它位于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"并找到参考资料。

答案 1 :(得分:2)

我想你正在寻找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