sphinx-build: ошибка: нераспознанные аргументы: -b html build/doctrees source build/html

Я использую Sphinx для документирования своего проекта. когда я запускаю make html, я получаю эту ошибку.

Я установил Sphinx v1.1.2 . В некоторых файлах .rst может быть какая-то ошибка, но это сообщение об ошибке бесполезно, так как я не знаю, какой файл проверить, поскольку у меня более 100 файлов .rst. Поэтому трудно проверять файлы по одному.

Есть ли способ решить эту ошибку или хотя бы выяснить, какой файл ошибочен?

Заранее спасибо.


person shashaDenovo    schedule 11.06.2012    source источник
comment
Используется ли в вашем проекте argparse? Этот модуль имеет сообщение об ошибке неопознанных аргументов.   -  person mzjn    schedule 11.06.2012
comment
да argparse используется в моем проекте.   -  person shashaDenovo    schedule 12.06.2012
comment
Тогда это может быть проблема, аналогичная stackoverflow. ком/вопросы/6912025/   -  person mzjn    schedule 12.06.2012


Ответы (2)


Проверьте модуль, который обрабатывался непосредственно перед этой ошибкой. В этом модуле, вероятно, отсутствует if __name__ == '__main__' проверка.

Проблема здесь в том, что:

  • sphinx-apidoc (или что-то еще, что вы использовали для создания своих первых файлов), вероятно, поместите automodule/autoclass/... в ваш файл rst.
  • sphinx использует расширение autodoc для извлечения строк документа из файлов .py, когда он встречает директиву autoXXX в первом файле.
  • autodoc импортирует модуль .py, чтобы извлечь из него строки документа.
  • на import, если модуль по умолчанию предполагает, что это только исполняемый файл (т.е. не имеет проверки __main__), вы получите сообщение об ошибке.

Боль в ошибке a$$ заключается в том, что большинство разработчиков будут использовать sys.argv[0] и sys.argv[0:] в сообщении об ошибке, отображаемом с неправильными аргументами, в результате чего в этом случае будет напечатано совершенно неуместное сообщение об ошибке.

person Kashyap    schedule 06.03.2014

Если вы используете sphinx-apidoc и ваш пакет использует setuptools с setup.py в той же папке, убедитесь, что вы скрыли setup() вызов в if 'main' == __name__: конструкции.

person mlt    schedule 07.03.2014