2015-12-22 2 views
10

Я пытаюсь использовать autodoc только для выбранных модулей. Я создал файл, который включает в себя:Игнорировать некоторые модули в autodoc

.. automodule:: some.specific.module 
    :members: 

И он генерируется правильно. К сожалению, autodoc также пытается анализировать и другие файлы (и не удается из-за ошибок импорта). Я знаю, что могу издеваться над некоторыми модулями, но я хочу лучшее решение - остановите сфинкс, чтобы смотреть на них, чтобы начать.

Как я могу убедиться, что загружен только запрошенный модуль, а не (например) test.other.module.

+0

Выполняет ли http://stackoverflow.com/a/21449475/344286 то, что вы хотите? Если так, я отправлю его в качестве ответа –

ответ

0

Так оказалось, что глупая ошибка. Поскольку некоторые инструменты генерируют эшафот для источников документации api, эти файлы были оставлены на месте и вызвали плохой импорт.

Как это было найдено:

  • сфинкс имеет несколько уровней отладки протоколирования, которые обычно не получают активированные
  • вы можете увидеть, какие строки запуска импорта на отладочный вывод, как
[autodoc] /path/to/the/doc.rst:158: input: 
.. automodule:: app.module.name 
    :members: 
0

Я вижу три возможные причины, чтобы это произошло:

  • кэш Сфинкса вызывает проблемы, и make clean бы решить вопрос
  • Ваш модуль находится в пакете, и __init__.py файл процедуры PACK_PROC импортирует эти «другие файлы» (или, если точнее, пытается до импортировать их);
  • Эти «другие файлы» импортированы, потому что вы установили PYTHONSTARTUP
Смежные вопросы