2

我想setup.py通过使用平台程序而不是 Extension() 从我的 C 编译器中调用。如何添加自定义构建步骤,setup.py以便使用python setup.py build或任何其他构建 ( bdist_*) 命令运行?

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、扩展类。它将提供与现有工具的最佳兼容性。

于 2012-08-23T16:17:17.600 回答