我有一个requirements.txt与Travis- CI一起使用的文件。看来愚蠢复制中都要求requirements.txt和setup.py,所以我希望到一个文件句柄传递给install_requires在kwarg setuptools.setup。
requirements.txt
setup.py
install_requires
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引用任何外部要求):
pip 9.0.1
install_reqs = parse_requirements('requirements.txt', session='hack')
但是,这不会过滤环境标记。
在pip的旧版本中(更具体地讲,是6.0之前的版本),可以使用公共API来实现。需求文件可以包含注释(#),也可以包含其他一些文件(--requirement或-r)。因此,如果您确实要解析a requirements.txt,则可以使用pip解析器:
#
--requirement
-r
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 )