【问题标题】:How to create `dev_requirements.txt` from `extras_require` section of `setup.cfg` file using `pip-compile` from `pip-tools`?如何使用`pip-tools`中的`pip-compile`从`setup.cfg`文件的`extras_require`部分创建`dev_requirements.txt`?
【发布时间】:2021-08-09 13:27:22
【问题描述】:

我使用pip-tools 管理我的依赖项和环境,它们完美地为我的包生成了一个requirements.txt 文件,该文件由一个setup.py 组成,如下所示:

#! /usr/bin/env python
import os
from setuptools import setup


if "CI_COMMIT_TAG" in os.environ:
    VERSION = os.environ["CI_COMMIT_TAG"]
else:
    VERSION = "0.0.0"

setup(version=VERSION)

还有一个像这样的setup.cfg

...
[options]
python_requires = >=3.7
zip_safe = False
packages = find:
include_package_data = True
install_requires =
    PyYAML
    Cython
    numpy==1.17.5
    pandas==0.25.3
    ...
package_dir=
    foo=bar

[options.extras_require]
testing =
    tox>=3.1.2
    pytest>=3.4.0
coverage =
    coverage
    pytest-cov>=2.5.1
other =
    anybadge
...

运行 $ pip-compile --index-url https://foo@bar@gitlab.my.host/api/v4/projects/236/packages/pypi/simple --no-header --allow-unsafe 产生我的包要求:

...
async-timeout==3.0.1
    # via aiohttp
attrs==21.2.0
    # via aiohttp
bcrypt==3.2.0
...

但这仅包括我的setup.cfg 文件的install_requires 部分中的所有包,而不包括extras_require 中的要求。它应该使用dev_requirements.in 文件,如here 所述,但我宁愿只使用一个配置文件。

如何使用pip-compile 从我的setup.cfg 文件的这个extras_require 部分创建一个单独的dev_requirements.txt,而不必创建dev_requirements.in 文件?

提前致谢!

【问题讨论】:

    标签: python pip setuptools pip-tools


    【解决方案1】:

    挖了一会,在另一个issue找到了我的答案:

    $ pip-compile --extra testing --extra other

    【讨论】:

    • 别忘了将此答案标记为正确:)
    • 我必须等待 2 天,但标签已固定在我的浏览器中 :-)
    猜你喜欢
    • 2021-05-19
    • 2018-09-24
    • 2016-11-09
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 2022-01-12
    • 2018-02-22
    相关资源
    最近更新 更多