Игнорировать некоторые модули в autodoc
Я пытаюсь использовать autodoc только для выбранных модулей. Я создал файл, который включает в себя:
.. automodule:: some.specific.module
:members:
И он генерируется правильно. К сожалению, autodoc также пытается анализировать и другие файлы (и не удается из-за ошибок импорта). Я знаю, что могу издеваться над некоторыми модулями, но я хочу лучшее решение - остановите сфинкс, глядя на них, чтобы начать.
Как я могу убедиться, что загружен только запрошенный модуль, а не (например) test.other.module
.
Ответы
Ответ 1
Так получилось, что это была глупая ошибка. Поскольку некоторые инструменты генерируют эшафот для источников документации api, эти файлы оставались на месте и приводили к плохим импортам.
Как это было найдено:
- sphinx имеет несколько уровней регистрации отладки, которые обычно не активируются.
- вы можете видеть, какие строки запускают импорт с помощью отладочного вывода, например
[autodoc] /path/to/the/doc.rst:158: input:
.. automodule:: app.module.name
:members:
Ответ 2
Я вижу три возможных причины для этого:
- Кэш Sphinx вызывает проблемы, и
make clean
решит проблему.
- Ваш модуль находится в пакете, а пакет
__init__.py
file
импортирует эти "другие файлы" (или, точнее, пытается
импортировать их);
- Эти "другие файлы" импортируются, потому что вы установили PYTHONSTARTUP