我们组织中有许多混合使用 Python/C 的项目。目前,我们正在努力为我们的项目标准化目录布局,并试图提出一个方便的方案。争论的焦点之一是将 C 扩展模块放在树中的什么位置。
我们正在考虑几个选项(相对于项目根目录):
./src/package/subpackage/module.c
或在包树中的 python 模块旁边:
./package/subpackage/module.c
或者在子包的src
目录下:
./package/subpackage/src/module.c
将它们保留在包目录之外的一个原因可能是因为它会导致困惑,特别是如果有其他 .c 和 .h 文件本身不是模块但仍需要编译。同样在“集成”方案中,您如何处理多个模块使用的 header 和文件?将它们放在一个共同的顶级目录中?
我很想知道其他人在使用什么,或者是否有任何既定的最佳实践。
最佳答案
我认为 Python 标准库的布局是一个合理的例子:trunk 下,这基本上是 SVN 存储库的根(分支网 &c),Modules
目录有很多 .c
和 .h
文件,Lib
目录下有很多.py
文件。
在我自己的项目中,我倾向于类似地划分源代码(实际上,如果我有 Cython 或 Pyrex 的,或 SWIG 等,我倾向于有其他目录用于 segmentation ),尽管目录名称不同(我承认我不' 对目录名称本身有一致的规则,我也从未听说过此类名称的良好指南)。
关于python - 具有 C 扩展模块的 Python 项目的目录布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2480565/