<p>您可以将其翻转过来,在<code>setup.py</code>中列出依赖项,而在<code>requirements.txt</code>中使用一个字符-一个点<code>.</code>。</p>
<hr/>
<p>或者,即使没有建议,也可以使用以下黑客(使用<code>pip 9.0.1</code>测试)解析<code>requirements.txt</code>文件(如果它没有通过URL引用任何外部需求):</p>
<pre><code>install_reqs = parse_requirements('requirements.txt', session='hack')
</code></pre>
<p>但这不会过滤<a href="https://pip.pypa.io/en/stable/reference/pip_install/#requirement-specifiers" rel="noreferrer">environment markers</a>。</p>
<hr/>
<p>在pip的旧版本中,更具体地说是<a href="https://github.com/pypa/pip/commit/7037443975ee5706ef829f14a52ac2fba7dbfff2" rel="noreferrer">older than 6.0</a>,有一个公共API可以用来实现这一点。需求文件可以包含注释(<code>#</code>),也可以包含其他一些文件(<code>--requirement</code>或<code>-r</code>)。因此,如果您真的想解析一个<code>requirements.txt</code>,可以使用pip解析器:</p>
<pre><code>from pip.req import parse_requirements
# parse_requirements() returns generator of pip.req.InstallRequirement objects
install_reqs = parse_requirements(<requirements_path>)
# reqs is a list of requirement
# e.g. ['django==1.5.1', 'mezzanine==1.4.6']
reqs = [str(ir.req) for ir in install_reqs]
setup(
...
install_requires=reqs
)
</code></pre>