From 12dde8afdb0a7bb5576e2656692c3478c69d8cc3 Mon Sep 17 00:00:00 2001 From: vitaut Date: Fri, 16 Oct 2015 06:58:12 -0700 Subject: [PATCH] Make sphinx_rtd_theme optional --- setup.py | 1 - sphinx/theming.py | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/setup.py b/setup.py index cc977f50f..73c57276c 100644 --- a/setup.py +++ b/setup.py @@ -53,7 +53,6 @@ requires = [ 'snowballstemmer>=1.1', 'babel>=1.3,!=2.0', 'alabaster>=0.7,<0.8', - 'sphinx_rtd_theme>=0.1,<2.0', ] extras_require = { # Environment Marker works for wheel 0.24 or later diff --git a/sphinx/theming.py b/sphinx/theming.py index 49bd707d0..6be331194 100644 --- a/sphinx/theming.py +++ b/sphinx/theming.py @@ -27,7 +27,6 @@ from sphinx import package_dir from sphinx.errors import ThemeError import alabaster -import sphinx_rtd_theme NODEFAULT = object() THEMECONF = 'theme.conf' @@ -71,7 +70,13 @@ 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': themedir = alabaster.get_path() # alabaster theme also requires 'alabaster' extension, it will be loaded