我想setup.py
通过使用平台程序而不是 Extension() 从我的 C 编译器中调用。如何添加自定义构建步骤,setup.py
以便使用python setup.py build
或任何其他构建 ( bdist_*
) 命令运行?
问问题
1209 次
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 回答