如何在setuptools / distribute setup.py中添加自定义构建步骤?

时间:2012-08-02 13:13:54

标签: python setuptools

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

1 个答案:

答案 0 :(得分:2)

我不知道'平台游戏'是什么。我假设您需要完全控制C扩展的构建方式,同时为打包工具提供相同的接口。

可能的方式:Cython defines its custom built_ext command could be used as

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