加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

python – 在setuptools setup.py文件中引用install_requires kw

发布时间:2020-12-20 10:33:08 所属栏目:Python 来源:网络整理
导读:我有一个我在Travis-CI上使用的requirements.txt文件.在requirements.txt和setup.py中复制需求似乎很愚蠢,所以我希望将文件句柄传递给setuptools.setup中的install_requires kwarg. 这可能吗?如果是这样,我该怎么做呢? 这是我的requirements.txt文件: gue
我有一个我在Travis-CI上使用的requirements.txt文件.在requirements.txt和setup.py中复制需求似乎很愚蠢,所以我希望将文件句柄传递给setuptools.setup中的install_requires kwarg.

这可能吗?如果是这样,我该怎么做呢?

这是我的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中.

或者,即使不建议,仍然可以使用以下hack(使用pip 9.0.1测试)解析requirements.txt文件(如果它没有通过URL引用任何外部要求):

install_reqs = parse_requirements('requirements.txt',session='hack')

但这并不过滤environment markers.

在旧版本的pip中,更具体地说是older than 6.0,有一个可用于实现此目的的公共API.需求文件可以包含注释(#),并且可以包含一些其他文件(–requirement或-r).因此,如果你真的想解析一个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
)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读