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