`pip install` 和所有附加功能

`pip install` with all extras

一个 pip install 与所有附加功能如何?我知道做类似的事情:

pip install -e .[docs,tests,others]

是一个选项。但是,是否可以这样做:

pip install -e .[all]

此题与相似。但是,那里的答案要求编辑 setup.cfg 文件。是否可以 修改 setup.pysetup.cfg

Is it possible to [install all extras] without modifying setup.py or setup.cfg?

否,直到包的作者在 setup.py 中声明所有额外内容。像

docs = […]
tests = […]
others = […]
all = docs + tests + others

setup(
    …,
    extras_require = {
        'all': all,
        'docs': docs,
        'tests': tests,
        'others': others,
    },
    …,
)

我是这样做的:

import itertools

extras_require = {
   'foo': [],
   'bar': [],
}
extras_require['all'] = list(itertools.chain.from_iterable(extras_require.values()))