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