7

CPython の C 拡張機能を構築したいと考えています。私は伝統的にsetup.pyファイルでそれを行うことができました。ただし、PEP 517 に記載されている理由から、pyproject.toml. setuptools関連するすべてのプラットフォームで C 拡張機能をビルドできる唯一のビルド バックエンドであることは理解しています。実際、私は、時代遅れの と一緒に C 拡張を構築できるバックエンドをまったく知りませんdistutils

この背景に対して、コモンsetup.pyは次のようになります。

from setuptools import setup, Extension
kwargs = dict(
    name='mypackage',
    # more metadata
    ext_modules=[
        Extension('mypackage.mymodule', ['lib/mymodule.c',
                                         'lib/mypackage.c',
                                         'lib/myalloc.c'],
                  include_dirs=['lib'],
                  py_limited_api=True)])

setup(**kwargs)

pyproject.tomlここでの課題は、上記をプラス aに入れることsetup.cfgです。

setuptoolsドキュメントは次のように提案していますpyproject.toml

[build-system]
requires = [
    "setuptools >=52.0",
        'wheel >= 0.36']
build-backend = "setuptools.build_meta"

見る

さらに、実際のメタデータはsetup.cfg. ext_modulesただし、 kwarg、特にExtension()呼び出しをsetup.cfg構文に変換する方法についての説明は見つかりませんでした。

4

1 に答える 1