gpt4 book ai didi

python - distutils 扩展参数——包括 vs 依赖 vs 源?

转载 作者:行者123 更新时间:2023-11-28 19:06:28 26 4
gpt4 key购买 nike

我正在尝试了解 pandas 的 cython 的依赖结构 extensions在 setup.py 中。

distutils.extension.Extension 有参数 sourcesdependsinclude_dirs,我不能找出它们之间的区别。特别是,在 pandas 案例中有很多地方我可以在不破坏构建的情况下删除 depends(或 pxdfiles)中的条目。

这三个参数有什么区别?

更新@phd 的以下回答:我很欣赏这个想法,将尝试更好地传达我困惑的根源。

在上面链接的 pandas setup.py 文件中,pandas._libs.tslib 扩展通过 args/kwargs 传递给 distutils.extension.Extension:

ext = Extension('pandas._libs.tslib',
sources=['pandas/_libs/tslib.pyx',
'pandas/_libs/src/util.pxd',
'pandas/_libs/src/datetime/np_datetime.c',
'pandas/_libs/src/datetime/np_datetime_strings.c',
'pandas/_libs/src/period_helper.c'],
depends=['pandas/_libs/src/datetime/np_datetime.h',
'pandas/_libs/src/datetime/np_datetime_strings.h',
'pandas/_libs/src/period_helper.h',
'pandas/_libs/src/datetime.pxd'],
include_dirs=['pandas/_libs/src/klib', 'pandas/_libs/src'])

例如sources 条目中的 util.pxdinclude_dirs 条目中存在 pandas/_libs/src 这不是多余的吗? tslib 直接从 datetime.pxd 导入,它具有 cdef extern from "datetime/np_datetime.h" 形式的“导入” cdef extern 来自“datetime/np_datetime_strings.h”。那些“允许”是因为 sources 中存在“*.c”文件或 depends 中存在“*.h”文件,还是两者都有,或者.. .

我已经尝试了一大堆删除这些依赖项子集的排列,没有看到很多破坏构建的模式。

最佳答案

参见 detailed docsthe source code用于 build_ext 命令。

sources 是编译扩展的源文件列表 (*.c)。

depends — 扩展需要编译的附加文件列表。

include_dirs — 编译器将在其中查找包含(头)文件 (*.h) 的目录列表。

pxdfilesCython-specific .

关于python - distutils 扩展参数——包括 vs 依赖 vs 源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46161314/

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