gpt4 book ai didi

python distutils,用生成的源代码编写c扩展

转载 作者:太空宇宙 更新时间:2023-11-04 00:10:07 25 4
gpt4 key购买 nike

我已经用 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 都会重新生成。

关于python distutils,用生成的源代码编写c扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3517301/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com