【问题标题】:How to put extras_require in setup.cfg如何将 extras_require 放入 setup.cfg
【发布时间】:2018-09-24 00:12:43
【问题描述】:

setuptools 30.3.0 引入了声明式包配置,允许我们将大部分用于直接传递给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_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'

阅读代码,我不是 100% 确定这是否受支持,但基于 PEP 508 看来这应该是受支持的用例。我错过了什么?

【问题讨论】:

    标签: python setuptools declarative


    【解决方案1】:

    支持。您需要一个配置部分

    [options.extras_require]
    test = faker; pytest
    

    语法记录在here

    【讨论】:

      猜你喜欢
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-13
      • 2022-08-08
      • 2021-04-26
      • 2014-11-21
      • 2019-12-18
      相关资源
      最近更新 更多