2024-06-16 08:47:04 发布
网友
我一直在研究各种开源的GitHub Python项目,比如, ^{}和Theano
我不知道它们的起点在哪里,所以我可以优雅地调试它们。我需要在每个文件中查找__main__方法吗?在
__main__
我来自Android背景,所以我搜索了一些相关的东西,比如AndroidManifest.xml,从中我可以知道代码从哪里开始,但是我没有成功。在
AndroidManifest.xml
有两种方法可以加载Python脚本:
import mymodule
$ python mymodule.py
在这两种情况下,脚本中的所有代码都将执行
通常if __name__ == '__main__':定义入口点:
if __name__ == '__main__':
if __name__ == '__main__': print('Started from commandline') else: print('Imported as a module')
在git项目中,您可以尝试以下操作来查找从命令行启动的所有脚本:
请注意,您提到的项目不包含任何显式定义的入口点,而是在打包时生成入口点脚本以供分发(请参见setup.py)
setup.py
清单文件的Python等价物通常是setup.py,因此这是开始查找的好地方。包装可以:
如果这两个都没有提供,那么包很可能被设计成import而不是执行,在这种情况下,查看使用示例以及根__init__.py(例如Theano's),这可能会告诉您哪些对象暴露在外部世界中。有关模块结构的更多信息,请参见the Python docs。在
import
__init__.py
然而,Python是一种动态的、灵活的语言,因此没有“magic bullet”来告诉您在哪里查找;例如,没有一个必须定义的main.py文件(尽管有一个__main__.py,可以定义,请参见What is __main__.py?)
main.py
__main__.py
有两种方法可以加载Python脚本:
import mymodule
$ python mymodule.py
在这两种情况下,脚本中的所有代码都将执行
通常
if __name__ == '__main__':
定义入口点:在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?)相关问题 更多 >
编程相关推荐