我正在編寫Python API,並且使用Google docstring約定記錄了源中的每個類和函數,我發現它比Sphinx約定更具可讀性。我想使用Sphinx爲我的API構建文檔。有一個名爲拿破崙的延伸支持Numpydoc和Google docstrings,所以我嘗試使用它,並且遇到了幾個問題。 我在Ubuntu 12.04上使用Python 2.7.3。無法使用Sphinx和Google docstrings創建文檔
我已經安裝了Sphinx 1.1.3。我爲文檔做了第一步(sphinx-quickstart,啓用了autodoc和make文件)。我在Sphinx 1.3之前閱讀過,我必須在文檔的conf.py中添加sphinxcontrib.napoleon作爲擴展。我這樣做,並得到了錯誤,無法找到擴展名'napoleon'。我下載了它,安裝它,然後我有錯誤,某包找不到:
Could not import extension sphinxcontrib.napoleon (exception: cannot import name six)
這是在要求一個文件包的名稱,所以我安裝了它。我與另一個軟件包有同樣的錯誤,我也安裝了它。現在,我也有同樣的錯誤,但與「範圍」:
Could not import extension sphinxcontrib.napoleon (exception: cannot import name range).
我不知道它是哪個包,我發現haven't在任何地方,所以I'm卡住。爲了防萬一,我嘗試了'phinx.ext.napoleon',但無法找到預期的擴展名。
我想嘗試一下與獅身人面像一起發貨的Sphinx 1.3和sphinx.ext.napoleon。使用apt-get進行安裝時,即使在更新後,我也只能獲得版本1.1.3。所以,我想直接下載過和安裝獅身人面像1.3,但得到了以下錯誤:
Processing ./Sphinx-1.3.4.tar.gz
Complete output from command python setup.py egg_info:
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'entry_points'
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'extras_require'
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'include_package_data'
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'zip_safe'
warnings.warn(msg)
/usr/lib/python2.7/distutils/dist.py:267: UserWarning: Unknown distribution option: 'install_requires'
warnings.warn(msg)
這似乎是與setuptools的一個問題。我發現這post並嘗試解決方案,但我無法得到它的工作。
我知道我可以更改所有的文檔字符串,但這需要時間並且可讀性較差。我可以嘗試比Sphinx更多的東西,但Sphinx是Python最常用的文檔工具,這就是爲什麼我試圖堅持下去。
如何從我的來源中的Google文檔字符串中獲得一份很好的文檔(仍然是自動的)?
我已經在使用autodoc擴展和apidoc腳本,它們工作正常,但不會將Google文檔轉換爲rps。我會研究Anaconda。 – Enaid
當然,那是因爲你需要讓拿破崙工作,他是解釋Google風格文檔的人。 – charlie80
是的,我知道,這是我的問題的核心。應該有辦法讓Napoleon在沒有安裝全新的python發行版的情況下工作,不是嗎? – Enaid