Я пишу расширение Python C, которое использует API Pygame C. Все идет нормально. Теперь мне интересно, как мне организовать исходный код, чтобы в пакете было несколько подмодулей. Все учебные пособия посвящены одному .c расширению файла. Я попытался просмотреть некоторые файлы setup.py в проектах, но они поразили меня сложностью, и я не мог видеть лес за деревьями.
По сути, у меня есть расширение, скажем, MyExt. MyExt имеет глобальные функции и 3 типа. Как мне организовать списки PyMethodDef? Должен ли я поместить их всех в один список? Кроме того, я заметил, что объект Extension, который вы передали в функцию установки, на самом деле является массивом модулей, так как же мне назвать модули, чтобы они все были в одном пакете и могли видеть друг друга?
Мой setup.py:
main_mod = Extension('modname',
include_dirs = ['C:\Libraries\Boost\include',
'C:\Libraries\SDL\include',
'C:\Libraries\SDL_image\include'],
libraries = ['libSDL',
'SDL_image'],
library_dirs = ['C:\Libraries\SDL\lib',
'C:\Libraries\SDL_image\lib'],
sources = ['main.cpp',
'Object1.cpp',
'Object2.cpp',
'Etcetera.cpp'])
Итак, когда я звоню: setup (name = "Некоторое человеческое удобочитаемое имя, верно?", Ext_modules = [main_mod])
Я могу добавить другие модули в список ext_modules, но что мне передать в качестве первого параметра в «Расширение»? Я использую строку, разделенную точкой, как 'mypackage.submodule'?
В целом, как организовать расширение C с несколькими подмодулями? Если кто-нибудь может указать мне на какой-нибудь исходный код, который легко читать и понимать, это было бы здорово. Большое спасибо!