Я написал модуль Python, включающий подмодуль, написанный на C: сам модуль называется foo
, а часть C - foo._bar
. Структура выглядит так:
src/
foo/__init__.py <- contains the public stuff
foo/_bar/bar.c <- the C extension
doc/ <- Sphinx configuration
conf.py
...
foo/__init__.py
импортирует _bar
для его увеличения, а полезные данные отображаются в модуле foo
. Это прекрасно работает при сборке, но, очевидно, не будет работать в некомпилированной форме, поскольку _bar
не существует, пока не будет собрано.
Я бы хотел использовать Sphinx для документирования проекта и использовать расширение autodoc в модуле foo
. Это означает, что мне нужно собрать проект, прежде чем я смогу собрать документацию.
Поскольку я собираю с помощью distutils, встроенный модуль заканчивается переменным именем dir build/lib.linux-ARCH-PYVERSION
, что означает, что я не могу просто жестко закодировать каталог в Sphinx 'conf.py
.
Так как мне настроить мой скрипт distutils setup.py
для запуска сборщика Sphinx над встроенным модулем?
Для полноты вот вызов setup
(«фальшивые» вещи - это пользовательские компоновщики, которые подклассы build
и build_ext
):
setup(cmdclass = {
'fake': fake,
'build_ext_fake' : build_ext_fake
},
package_dir = {'': 'src'},
packages = ['foo'],
name = 'foo',
version = '0.1',
description = desc,
ext_modules = [module_real])