如何找出任何Python项目中代码执行的起点?

Ali*_*ris 2 python debugging

我一直在寻找各种开放源代码GitHub的Python项目一样, http-promptTheano

我无法弄清楚它们的起点在哪里,以便可以优雅地调试它们。我需要查看每个文件中的__main__方法吗?

我来自Android背景;所以我在搜索相关内容,例如AndroidManifest.xml从哪里可以得到代码开始的地方的想法,但是我的尝试没有成功。

Nic*_*tte 5

可以通过两种方式加载Python脚本:

  • 通过进口: import mymodule
  • 通过命令行: $ python mymodule.py

在这两种情况下,脚本中的所有代码均被执行

通常if __name__ == '__main__':定义入口点:

if __name__ == '__main__': 
    print('Started from commandline')
else:
    print('Imported as a module')
Run Code Online (Sandbox Code Playgroud)

在git项目中,您可以尝试执行以下操作以查找要从命令行启动的所有脚本:

$ git grep "if __name__ ?== ?\W__main__\W"
Run Code Online (Sandbox Code Playgroud)

请注意,您提到的项目不包含任何显式定义的入口点,而是在打包时生成入口点脚本以进行分发(请参见setup.py为此目的)