python - 具有 C 扩展模块的 Python 项目的目录布局

标签 python c module

我们组织中有许多混合使用 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/

相关文章:

gwt - 同一模块中有多个入口点的问题

python - threading.local 是否使用锁进行访问?

c - 链表交点程序的改进

ruby - Rails 按条件包含模块

c - Prime 与否 Prime 输出慢

c - linux-kernel 模块分配的最大内存

nginx - 将 Phusion Passenger 安装为动态 Nginx 模块;模块似乎没有加载但没有错误

python - 在 Linux 上将终端程序从 Bash 迁移到 Python

python - 如何使用 Python 查看 Windows 注册表的更改

python - Pandas csv 阅读器无法识别分隔符