簡體   English   中英

python distutils,使用生成的源代碼編寫c擴展

[英]python distutils, writing c extentions with generated source code

我已經用C語言編寫了Python擴展庫,目前正在使用distutils進行構建。 我也有一個生成.h文件的Python腳本,我想將其包含在擴展名中。

是否可以使用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。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM