@ekopiy

Почему возникает ошибка `Unknown directive type "http:post"`?

Проблема с расширением sphinxcontrib-httpdomain. При объявлении блока http:get/http:post и любого другого (http:*) не собирается документ. Sphinx показывает следующую ошибку:
Unknown directive type "http:post"

Как я объявляю http:get(копипаста из оф. документации к расширению)

.. http:get:: /users/(int:user_id)/posts/(tag)

The posts tagged with `tag` that the user (`user_id`) wrote.

**Example request**:

.. sourcecode:: http

GET /users/123/posts/web HTTP/1.1
Host: example.com
Accept: application/json, text/javascript

**Example response**:

.. sourcecode:: http

HTTP/1.1 200 OK
Vary: Accept
Content-Type: text/javascript

[
{
"post_id": 12345,
"author_id": 123,
"tags": ["server", "web"],
"subject": "I tried Nginx"
},
{
"post_id": 12346,
"author_id": 123,
"tags": ["html5", "standards", "web"],
"subject": "We go to HTML 5"
}
]

:query sort: one of ``hit``, ``created-at``
:query offset: offset number. default is 0
:query limit: limit number. default is 30
:reqheader Accept: the response content type depends on
:mailheader:`Accept` header
:reqheader Authorization: optional OAuth token to authenticate
:resheader Content-Type: this depends on :mailheader:`Accept`
header of request
:statuscode 200: no error
:statuscode 404: there's no user

До и после блока есть 2 пустых строки. В качестве табуляции использовал 3, 4 пробела и табуляцию. Не помогло
Содержимое блока extensions в файле conf.py

extensions = ['sphinx.ext.autodoc',
'sphinx.ext.extlinks',
'sphinx.ext.intersphinx',
'sphinx.ext.todo',
'sphinx.ext.coverage',
'sphinx.ext.ifconfig',
'sphinx.ext.doctest',
'sphinx.ext.graphviz',
'sphinxcontrib.httpdomain'
]

Что попробовал и не помогло:
  • Переустановка всех sphinx* пакетов через sudo pip
  • Переустановка всех sphinx* пакетов через apt-get. Тут вообще при билде ругнулось на старую версию сфинкса. В моём наборе репозиториев не нашлось версии, более свежей, чем 1.5
  • Указать путь к расширению в conf.py
  • Переустановить autodoc, docutils через pip
  • Собрать документ на другом компьютере
  • Изучить логи сборки с -vvvv ключом
  • Почитать документацию к расширению


Эта информация может помочь:
  • Все пакеты sphinx установлены в /usr/local/lib/python2.7/dist-packages
  • Вывод pip show sphinx
    Name: Sphinx
    Version: 1.6.7
    Summary: Python documentation generator
    Home-page: sphinx-doc.org
    Author: Georg Brandl
    Author-email: georg@python.org
    License: BSD
    Location: /usr/local/lib/python2.7/dist-packages
    Requires: sphinxcontrib-websupport, babel, imagesize, setuptools, typing, Pygments, requests, six, docutils, alabaster, Jinja2, snowballstemmer

  • Вывод pip show sphinxcontrib-httpdomain
    Name: sphinxcontrib-httpdomain
    Version: 1.6.0
    Summary: Sphinx domain for documenting HTTP APIs
    Home-page: https://github.com/sphinx-contrib/httpdomain
    Author: Hong Minhee
    Author-email: hong.minhee@gmail.com
    License: BSD
    Location: /usr/local/lib/python2.7/dist-packages
    Requires: six, Sphinx

  • Вывод uname: Linux 4.13.0-32-generic #35-Ubuntu SMP Thu Jan 25 09:13:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • Вопрос задан
  • 61 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы