<p>清单文件的Python等价物通常是<code>setup.py</code>,因此这是开始查找的好地方。包装可以:</p>
<ul>
<li>使用<a href="http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html#the-scripts-keyword-argument" rel="nofollow noreferrer">the ^{<cd2>} keyword</a>(作为<a href="https://github.com/Theano/Theano/blob/master/setup.py#L178" rel="nofollow noreferrer">Theano does</a>)定义应该安装的脚本;或者</li>
<li>使用<a href="http://python-packaging.readthedocs.io/en/latest/command-line-scripts.html?highlight=entry_points#the-console-scripts-entry-point" rel="nofollow noreferrer">the ^{<cd3>} keyword</a>定义应该公开给命令行的函数(正如<a href="https://github.com/eliangcs/http-prompt/blob/master/setup.py#L56" rel="nofollow noreferrer">^{<cd4>}</a>所做的那样,指向<a href="https://github.com/eliangcs/http-prompt/blob/master/http_prompt/cli.py#L46" rel="nofollow noreferrer">the ^{<cd5>} function</a>)。在</li>
</ul>
<p>如果这两个都没有提供,那么包很可能被设计成<code>import</code>而不是执行,在这种情况下,查看使用示例以及根<code>__init__.py</code>(例如<a href="https://github.com/Theano/Theano/blob/master/theano/__init__.py" rel="nofollow noreferrer">Theano's</a>),这可能会告诉您哪些对象暴露在外部世界中。有关模块结构的更多信息,请参见<a href="https://docs.python.org/3/tutorial/modules.html#packages" rel="nofollow noreferrer">the Python docs</a>。在</p>
<p>然而,Python是一种动态的、灵活的语言,因此没有<em>“magic bullet”</em>来告诉您在哪里查找;例如,没有一个必须定义的<code>main.py</code>文件(尽管有一个<code>__main__.py</code>,可以<em>定义,请参见<a href="https://stackoverflow.com/questions/4042905/what-is-main-py">What is __main__.py?</a>)</p>