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

2024-06-16 08:47:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我一直在研究各种开源的GitHub Python项目,比如, ^{}Theano

我不知道它们的起点在哪里,所以我可以优雅地调试它们。我需要在每个文件中查找__main__方法吗?在

我来自Android背景,所以我搜索了一些相关的东西,比如AndroidManifest.xml,从中我可以知道代码从哪里开始,但是我没有成功。在


Tags: 文件项目方法代码githubmain开源theano
2条回答

有两种方法可以加载Python脚本:

  • 通过导入:import mymodule
  • 通过命令行:$ python mymodule.py

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

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

if __name__ == '__main__': 
    print('Started from commandline')
else:
    print('Imported as a module')

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

^{pr2}$

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

清单文件的Python等价物通常是setup.py,因此这是开始查找的好地方。包装可以:

如果这两个都没有提供,那么包很可能被设计成import而不是执行,在这种情况下,查看使用示例以及根__init__.py(例如Theano's),这可能会告诉您哪些对象暴露在外部世界中。有关模块结构的更多信息,请参见the Python docs。在

然而,Python是一种动态的、灵活的语言,因此没有“magic bullet”来告诉您在哪里查找;例如,没有一个必须定义的main.py文件(尽管有一个__main__.py,可以定义,请参见What is __main__.py?

相关问题 更多 >