setuptools setup.py文件中install_requires kwarg的参考requirements.txt

发布于 2021-01-29 19:33:49

我有一个requirements.txt与Travis-
CI一起使用的文件。看来愚蠢复制中都要求requirements.txtsetup.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
关注者
0
被浏览
113
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    你可以翻转它周围,列表中的依赖关系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
    )
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看