<p>首先,确保程序使用<a href="https://docs.python.org/3/library/argparse.html" rel="nofollow noreferrer">argparse</a>,这是<code>autoprogram</code>的要求:</p>
<blockquote>
<p>scans <code>argparse.ArgumentParser</code> object, and then expands it into a set of <code>.. program::</code> and <code>.. option::</code> directives.</p>
</blockquote>
<p>其次,您使用的语法可能不正确。看起来您复制了第一个示例中的pastad,而不是读取其<a href="https://pythonhosted.org/sphinxcontrib-autoprogram/#directive-autoprogram" rel="nofollow noreferrer">usage</a>。具体来说:</p>
<pre><code>.. autoprogram:: module:parser
</code></pre>
<p><code>module</code>是模块的点式导入名,<code>parser</code>是引用<code>argparse.ArgumentParser</code>对象或创建并返回对象的Python表达式的变量。在</p>
<p>因此,在您的例子中,假设您的<code>parser()</code>创建并返回一个<code>argparse.ArgumentParser</code>,那么您的语法应该是这样或接近它的:</p>
^{pr2}$
<p>困难的部分是找出准确、正确的<code>module:parser</code>替换。在</p>
<p>要与另一个示例进行比较,请参见<code>pcreate</code>的金字塔文档的<a href="https://github.com/Pylons/pyramid/blob/1.9-branch/pyramid/scripts/pcreate.py" rel="nofollow noreferrer">source program</a>、源<a href="https://github.com/Pylons/pyramid/blob/1.9-branch/docs/pscripts/pcreate.rst" rel="nofollow noreferrer">reST file</a>和{a5}。在</p>