Игнорировать некоторые модули в 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