2

我已经用 C 编写了一个 Python 扩展库,我目前正在使用 distutils 来构建它。我还有一个 Python 脚本,它生成一个 .h 文件,我想将它包含在我的扩展中。

是否可以使用 distutils 设置这样的依赖项?它是否能够注意到我的脚本何时更改、重新生成 .h 文件并重新编译扩展名?

4

1 回答 1

0

您可以通过覆盖 distutils 中的 build_ext 命令来做到这一点。

from distutils.core import setup, Extension
from distutils.command.build_ext import build_ext as _build_ext

module=Extension(....) # The way to build your extension

class build_ext(_build_ext):
    description = "Custom Build Process"

    def initialize_options(self):
        _build_ext.initialize_options(self)
    def finalize_options(self):
        _build_ext.finalize_options(self)

    def run(self):
        # Code to generate your .h
        .....

        # Start classic Extension build
        _build_ext.run(self)

setup(...
      ext_modules = [module],
      cmdclass = { "build_ext": build_ext},
      ...)

因此,每次构建扩展时,都会重新生成 .h。

于 2010-09-08T16:32:19.123 回答