У нас есть множество проектов в нашей организации, которые являются смешанными Python / C. В настоящее время мы пытаемся стандартизировать макет каталогов для наших проектов и пытаемся придумать удобную схему. Один из спорных моментов - где разместить модули расширения C в дереве.
Мы подбрасываем пару вариантов (относительно корня проекта):
./src/package/subpackage/module.c
или рядом с модулями python в дереве пакетов:
./package/subpackage/module.c
или в каталоге src
в подпакете:
./package/subpackage/src/module.c
Одна из причин, по которой они не попадают в каталоги пакетов, может заключаться в том, что это приведет к беспорядку, особенно если есть другие файлы .c и .h, которые сами по себе не являются модулями, но все еще нуждаются в компиляции. Также в «интегрированной» схеме, что вы делаете с заголовками и файлами, которые используются более чем одним модулем? Поместить их в общий каталог верхнего уровня?
Мне было бы интересно узнать, что другие люди используют, или есть ли какие-либо признанные передовые методы для этого.