Python 如何在setup.cfg中放入所需的额外内容

Python 如何在setup.cfg中放入所需的额外内容,python,setuptools,declarative,Python,Setuptools,Declarative,引入了声明性包配置,允许我们将用于直接传递到setuptools.setup文件中的大多数选项放入setup.cfg文件中。例如,给定以下setup.cfg: [metadata] name = hello-world description = Example of hello world [options] zip_safe = False packages = hello_world install_requires = examples example1 仅包含以下内容的

引入了声明性包配置,允许我们将用于直接传递到
setuptools.setup
文件中的大多数选项放入
setup.cfg
文件中。例如,给定以下setup.cfg:

[metadata]
name = hello-world
description = Example of hello world

[options]
zip_safe = False
packages =
  hello_world
install_requires =
  examples
  example1
仅包含以下内容的setup.py

import setuptools
setuptools.setup()
我会做所有正确的事情

但是,我还没有找到
extras\u require
的正确语法。在
setup
args中,它是一个字典,如

setup(extras_require={'test': ['faker', 'pytest']})
但是我无法找出在setup.cfg中使用的正确语法。我试着阅读文档,但找不到setuptools希望词典使用的正确语法。我也试过一些猜测

[options]
extras_require =
  test=faker,pytest
它失败了

Traceback (most recent call last):
  File "./setup.py", line 15, in <module>
    'pylint',
  File "/lib/site-packages/setuptools/__init__.py", line 128, in setup
    _install_setup_requires(attrs)
  File "/lib/site-packages/setuptools/__init__.py", line 121, in _install_setup_requires
    dist.parse_config_files(ignore_option_errors=True)
  File "/lib/python3.6/site-packages/setuptools/dist.py", line 495, in parse_config_files
    self._finalize_requires()
  File "/lib/python3.6/site-packages/setuptools/dist.py", line 419, in _finalize_requires
    for extra in self.extras_require.keys():
AttributeError: 'str' object has no attribute 'keys'
回溯(最近一次呼叫最后一次):
文件“/setup.py”,第15行,在
“派林”,
文件“/lib/site packages/setuptools/_init__uuu.py”,第128行,在安装程序中
_安装\u安装\u需要(属性)
文件“/lib/site packages/setuptools/_init__uuuuu.py”,第121行,在安装程序中
dist.parse\u config\u文件(忽略选项\u errors=True)
parse_config_文件中的文件“/lib/python3.6/site packages/setuptools/dist.py”,第495行
self.\u finalize\u requires()
文件“/lib/python3.6/site packages/setuptools/dist.py”,第419行,在
对于self.extras\u require.keys()中的额外项:
AttributeError:“str”对象没有属性“keys”

阅读代码时,我不是100%确定这是否受支持,但基于它,这似乎应该是一个受支持的用例。我缺少什么?

它是受支持的。您需要一个配置部分:

语法是有文档记录的

[options.extras_require]
test = faker; pytest