如何使用 setup.cfg 配置 setuptools 以包含平台名称、python 标签和 ABI 标签?

use*_*089 8 python setuptools

由于 setup.py install 的控制台消息已被弃用,我正在将现有的 setup.py install 升级到带有build的推荐 setup.cfg

我现有的 setup.py 看起来像

from setuptools import setup

setup(
    name='pybindsample',
    version='0.1.0',
    packages=[''],
    package_data={'': ['pybindsample.so']},
    has_ext_modules=lambda: True,
)
Run Code Online (Sandbox Code Playgroud)

我当前的翻译如下:

安装程序.cfg

[metadata]
name = pybindsample
version = 0.1.0

[options]
packages = . 

[options.package_data]
. = pybindsample.so
Run Code Online (Sandbox Code Playgroud)

pyproject.toml

[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
Run Code Online (Sandbox Code Playgroud)

我的问题是我该如何翻译has_ext_modules=lambda: Truehas_ext_modules=lambda: True来自这里的解决方案。如果没有这个,执行后python3 -m build --wheel生成的wheel的文件名将变成pybindsample-0.1.0-py3-none-any.whl,而我的旧版本python3 setup.py bdist_wheel将生成文件名为 的wheel pybindsample-0.1.0-cp39-cp39-macosx_11_0_x86_64.whl。我已经尝试过

安装程序.cfg

[metadata]
name = pybindsample
version = 0.1.0

[options]
packages = . 
has_ext_modules=lambda: True,

[options.package_data]
. = pybindsample.so
Run Code Online (Sandbox Code Playgroud)

但它仍然生成pybindsample-0.1.0-py3-none-any.whl,我也尝试过

安装程序.cfg

[metadata]
name = pybindsample
version = 0.1.0

[options]
packages = . 

[options.package_data]
. = pybindsample.so

[bdist_wheel]
python-tag = c39
plat-name = macosx_11_0_x86_64
py-limited-api = c39
Run Code Online (Sandbox Code Playgroud)

这会生成pybindsample-0.1.0-cp39-none-macosx_11_0_x86_64.whl,我无法弄清楚为什么 abi 标签仍然是none

使用 setup.cfg 配置 setuptools 以包含平台名称、python 标签和 ABI 标签的正确方法是什么?