如何使用 `pip-tools` 中的 `pip-compile` 从 `setup.cfg` 文件的 `extras_require` 部分创建 `dev_requirements.txt`?
How to create `dev_requirements.txt` from `extras_require` section of `setup.cfg` file using `pip-compile` from `pip-tools`?
我使用 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
文件?
提前致谢!
经过一段时间的挖掘,我在另一个 issue:
中找到了我的答案
$ pip-compile --extra testing --extra other
我使用 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
文件?
提前致谢!
经过一段时间的挖掘,我在另一个 issue:
中找到了我的答案$ pip-compile --extra testing --extra other