On Sat, 23 Apr 2016, Vitaly Lipatov wrote: > Ivan Zakharyaschev писал 22.4.16 22:17: >> О, спасибо! Этого как раз не хватало, чтобы тесты в релизном sphinx >> прошли. Расстроился, что тесты не проходят, решил немного погулять, а >> тут такой подарочек. > > Отлично! А я уж думал, что сломал что-то :) Вот новый sphinx немного сломал сборку чего-то, по сути из-за пустяка. Например, ttystatus -- https://lists.altlinux.org/pipermail/sisyphus-incominger/2016-April/434869.html . Недосчитался автозависимости на alabaster (потому что в коде оно стало импортироваться глубоко, возможно, условно, а при вызове /usr/bin/sphinx-build setuptools берут и проверяют наличие всех объявленных зависимостей в любом случае и отказываются работать, как тут...) http://git.altlinux.org/people/imz/packages/python-module-sphinx.git?p=python-module-sphinx.git;a=commit;h=0db4ee2fe0979c3eb7fa82b1a0b15c1b0e8ba79e 1:1.4.1-alt2 - %py_requires alabaster (in the new source code, alabaster looks like a conditional import) --i.e., not top-level and hence not autodetected--but this doesn't make much sense since setuptools check the declared reqs when running the entry_point %_bindir/sphinx-build... diff --git a/sphinx/theming.py b/sphinx/theming.py index 49bd707..08051be 100644 --- a/sphinx/theming.py +++ b/sphinx/theming.py @@ -26,9 +26,6 @@ except ImportError: from sphinx import package_dir from sphinx.errors import ThemeError -import alabaster -import sphinx_rtd_theme - NODEFAULT = object() THEMECONF = 'theme.conf' @@ -71,8 +68,15 @@ class Theme(object): @classmethod def load_extra_theme(cls, name): - if name in ('alabaster', 'sphinx_rtd_theme'): + themes = ['alabaster'] + try: + import sphinx_rtd_theme + themes.append('sphinx_rtd_theme') + except ImportError: + pass + if name in themes: if name == 'alabaster': + import alabaster themedir = alabaster.get_path() # alabaster theme also requires 'alabaster' extension, it will be loaded # at sphinx.application module. -- Best regards, Ivan