setuptools setup.py文件中install_requires kwarg的参考requirements.txt
我有一个requirements.txt
与Travis-
CI一起使用的文件。看来愚蠢复制中都要求requirements.txt
和setup.py
,所以我希望到一个文件句柄传递给install_requires
在kwarg
setuptools.setup
。
这可能吗?如果是这样,我应该怎么做呢?
这是我的requirements.txt
文件:
guessit>=0.5.2
tvdb_api>=1.8.2
hachoir-metadata>=1.3.3
hachoir-core>=1.3.3
hachoir-parser>=1.3.4
-
你可以翻转它周围,列表中的依赖关系
setup.py
,并有单字符-点.
-在requirements.txt
代替。
另外,即使不建议使用,也可以
requirements.txt
通过以下技巧(通过进行测试pip 9.0.1
)来解析文件(如果它没有通过URL引用任何外部要求):install_reqs = parse_requirements('requirements.txt', session='hack')
但是,这不会过滤环境标记。
在pip的旧版本中(更具体地讲,是6.0之前的版本),可以使用公共API来实现。需求文件可以包含注释(
#
),也可以包含其他一些文件(--requirement
或-r
)。因此,如果您确实要解析a
requirements.txt
,则可以使用pip解析器: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 )