无法使用Sphinx可读性主题

时间:2015-06-09 19:47:46

标签: python themes python-sphinx

我想为我的Sphinx使用可读性主题,该主题可用here。但是,当我尝试按照说明中的建议修改我的conf.py文件来使用此主题时,它会在执行make html时显示此错误:

sphinx-build -b html -d build/doctrees   source build/html
Running Sphinx v1.3.1
loading pickled environment... done

Theme error:
no theme named 'readability' found (missing theme.conf?)
make: *** [html] Error 1

我发现人们之前遇到过像in this question报道的其他主题一样的问题。但是,就我而言,那里存在conf.py文件。

更新

我使用较新的virtualenvsphinx内尝试了主题。并且在执行make html时显示此错误:

sphinx-build -b html -d build/doctrees   source build/html
Running Sphinx v1.3.1
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 1 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
preparing documents... done
writing output... [100%] index

generating indices... genindex
Exception occurred:
  File "~/DEVEL/python/sphinx/sphinx2/local/lib/python2.7/site-packages/sphinx/jinja2glue.py", line 159, in get_source
    raise TemplateNotFound(template)
TemplateNotFound: readability/layout.html
The full traceback has been saved in /tmp/sphinx-err-q42_PH.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
make: *** [html] Error 1

1 个答案:

答案 0 :(得分:1)

因此我可以通过将patch应用于sphinxtheme-readability来解决此问题。此处还有一个bug report

<强>配置:

我的source/conf.py看起来像这样:

import sphinxtheme

html_theme = 'readability'
html_theme_path = sphinxtheme.get_html_theme_path()

<强>修补程序:

这是我必须应用于sphinxtheme/__init__.py的补丁:

diff --git a/sphinxtheme/__init__.py b/sphinxtheme/__init__.py
index b0d6433..a3edbe0 100644
--- a/sphinxtheme/__init__.py
+++ b/sphinxtheme/__init__.py
@@ -1 +1,7 @@
-__import__('pkg_resources').declare_namespace(__name__)
\ No newline at end of file
+import os
+
+
+def get_html_theme_path():
+    """Return list of HTML theme paths."""
+    cur_dir = os.path.abspath(os.path.dirname(__file__))
+    return [cur_dir]

我还提交了Pull Request来解决此问题。

您只需执行以下操作即可对此进行测试:

mkvirtualenv test-sphinxtheme-readability
git clone https://github.com/prologic/test-sphinxtheme-readability.git
cd test-sphinxtheme-readability
pip install -r requirements.txt
make clean html
circuits.web build/html

访问:http://localhsot:8000/

说明:您遇到此问题的原因以及我认为主题及其示例配置有点不合理的原因是因为路径非常错误。参见:

$ make clean html
rm -rf build/*
sphinx-build -b html -d build/doctrees   source build/html
Running Sphinx v1.3.1
making output directory...
readability_path:  /home/prologic/.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinxtheme
relative_path:  ../../../.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinxtheme
loading pickled environment... not yet created
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 1 source files that are out of date
updating environment: 1 added, 0 changed, 0 removed
reading sources... [100%] index                                                                                         
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
preparing documents... done
writing output... [100%] index                                                                                          
generating indices... genindex
Exception occurred:
  File "/home/prologic/.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinx/jinja2glue.py", line 159, in get_source
    raise TemplateNotFound(template)
TemplateNotFound: readability/layout.html
The full traceback has been saved in /tmp/sphinx-err-8zoG8h.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
Makefile:55: recipe for target 'html' failed
make: *** [html] Error 1

$ ls -lah /home/prologic/.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinxtheme
total 32K
drwxr-xr-x  3 prologic users 4.0K Jun 15 09:30 .
drwxr-xr-x 37 prologic users 4.0K Jun 15 09:30 ..
-rw-r--r--  1 prologic users   55 Jun 15 09:30 __init__.py
-rw-r--r--  1 prologic users  243 Jun 15 09:30 __init__.pyc
drwxr-xr-x  3 prologic users 4.0K Jun 15 09:30 readability
-rw-r--r--  1 prologic users 5.6K Jun 15 09:30 readability_theme_support.py
-rw-r--r--  1 prologic users 2.8K Jun 15 09:30 readability_theme_support.pyc

$ ls -lah ../../../.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinxtheme
ls: cannot access ../../../.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinxtheme: No such file or directory

请注意我在source/conf.py中打印的两条路径:

readability_path:  /home/prologic/.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinxtheme
relative_path:  ../../../.virtualenvs/sphinx-readability/lib/python2.7/site-packages/sphinxtheme