2
我已经在C中编写了一个Python扩展库,我目前正在使用distutils来构建它。我也有一个生成.h文件的Python脚本,我希望将其包含在我的扩展中。python distutils,用生成的源代码编写c扩展
是否有可能使用distutils设置这样的依赖关系?它能够注意到我的脚本更改时,重新生成.h文件并重新编译扩展名?
我已经在C中编写了一个Python扩展库,我目前正在使用distutils来构建它。我也有一个生成.h文件的Python脚本,我希望将其包含在我的扩展中。python distutils,用生成的源代码编写c扩展
是否有可能使用distutils设置这样的依赖关系?它能够注意到我的脚本更改时,重新生成.h文件并重新编译扩展名?
您可以通过从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。
谢谢!我将distutils.dep_util.newer与您的示例结合起来以获得所需的行为。 – user424599 2010-09-09 19:08:32