2

setup.pyExtension()の代わりにプラットフォーマーを使用して、自分からCコンパイラーを呼び出したいと思います。カスタムビルドステップをに追加して、他のビルド()コマンドsetup.pyで実行できるようにするにはどうすればよいですか?python setup.py buildbdist_*

4

1 に答える 1

2

「プラットフォーマー」とは何かわかりません。パッケージングツールに同じインターフェイスを提供しながら、C拡張機能の構築方法を完全に制御する必要があると思います。

考えられる方法:Cythonは、次のように使用できるカスタムbuilt_extコマンドを定義します。

from distutils.core import setup
from distutils.extension import Extension
from Cython.Distutils import build_ext

setup(
    cmdclass = {'build_ext': build_ext},
    ext_modules = [Extension("example", ["example.pyx"])]
)

より簡単なオプションは、生成されたCソースをソースtarballに含め、setup.pyで標準のbuilt_ext、Extensionクラスを使用することです。これは、既存のツールとの最高の互換性を提供します。

于 2012-08-23T16:17:17.600 に答える