2012-06-13 6 views
2

Я пытаюсь создать генерацию документации python с помощью Sphinx. Проблема в том, что sphinx-build заканчивает выполнение модуля/оценку чего-либо в глобальной области. Есть ли причина, по которой это происходит? И кто-нибудь знает флаг, который можно установить для отключения этого?Предотвращение выполнения скриптом Sphinx

Кажется, что Sphinx пытается сделать покрытие кода или что-то подобное, что определенно не то, что я хочу, чтобы он делал. Обычно это не проблема, но определенный набор модулей очень специфичен для среды.

+0

Да, это нормально, что модули импортируются сфинксом при автодоке. Он должен сделать это, чтобы получить информацию о докстерах, классах и функциях и т. Д. Не могли бы вы предоставить немного больше информации? Как это остановить? Что такое сообщение? и т. д. – cedbeu

ответ

6

Sphinx оценивает все в глобальном масштабе, потому что модуль плагина autodoc импортирует модули, а импорт модуля оценивает все в глобальной области.

Чтобы остановить это, либо:

  • Отключить AutoDoc плагин (поиск autodoc в сфинкса конфигурационном файле), или
  • Guard код, который вы не хотите выполняться с чем-то вроде if __name__ == "__main__": do_stuff()
+0

Ах - да, это удобно работает, поскольку некоторые глобальные переменные, которые у меня есть, относятся только к модулю, если он запускается как скрипт. Я могу разместить их внутри этого утверждения. Благодаря! – djp

Смежные вопросы