今兒用了一下 ReadTheDocs,真tm好用,就是遇到一個小bug,中文資料少之又少…查完資料解決後,將解決途徑放到這裏.
報錯全文:
python /home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/envs/latest/bin/sphinx-build -T -E -b readthedocs -d _build/doctrees-readthedocs -D language=zh_CN . _build/html
Running Sphinx v1.8.5
loading translations [zh_CN]... done
making output directory...
building [mo]: targets for 0 po files that are out of date
building [readthedocs]: targets for 2 source files that are out of date
updating environment: 2 added, 0 changed, 0 removed
reading sources... [ 50%] hello
reading sources... [100%] index
/home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/envs/latest/lib/python3.7/site-packages/recommonmark/parser.py:65: UserWarning: Container node skipped: type=document
warn("Container node skipped: type={0}".format(mdnode.t))
Traceback (most recent call last):
File "/home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/envs/latest/lib/python3.7/site-packages/sphinx/cmd/build.py", line 304, in build_main
app.build(args.force_all, filenames)
File "/home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/envs/latest/lib/python3.7/site-packages/sphinx/application.py", line 341, in build
self.builder.build_update()
File "/home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/envs/latest/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 347, in build_update
len(to_build))
File "/home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/envs/latest/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 360, in build
updated_docnames = set(self.read())
File "/home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/envs/latest/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 472, in read
self.env.doc2path(self.config.master_doc))
sphinx.errors.SphinxError: master file /home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/checkouts/latest/doc/source/contents.rst not found
Sphinx error:
master file /home/docs/checkouts/readthedocs.org/user_builds/sdofjasif/checkouts/latest/doc/source/contents.rst not found
解決途徑:
If you have your own
conf.py
file, it overrides Read the Doc’s defaultconf.py
. By default, Sphinx expects the master doc to be contents. Read the Docs will set master doc to index instead (or whatever it is you have specified in your settings). Try adding this to yourconf.py
:master_doc = 'index'
在你的conf.py
文件中加上master_doc = 'index'
這樣一句話即可
原因是自定義的 conf.py
文件,其覆蓋了原來的conf.py
文件.
默認情況下,Sphinx希望 master doc爲內容. 將設置master doc改爲 index(或您在設置中指定的任何內容)。
參考自:
https://stackoverflow.com/questions/56336234/build-fail-sphinx-error-contents-rst-not-found
https://github.com/readthedocs/readthedocs.org/issues/2569