0

我正在編寫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文檔字符串中獲得一份很好的文檔(仍然是自動的)?

回答

0

rangepython內置的,其行爲更改爲python3python,sphinxnapoleon版本/要求(sphinx 1.1.3比較舊)之間可能會有一些爭執。

由於擔心您的上一個問題(自動文檔),您應該查看autodoc擴展名。如果您想要更多自動化功能,請查看sphinx > 1.1中包含的apidoc腳本。

這不是您的問題的直接解決方案/答案,但您也可以使用更新,更穩健的python分配,例如Anaconda(而不是Ubuntu回購協議中的陳舊python),這將允許您可以毫不費力地使用最新的napoleonsphinx版本。

+0

我已經在使用autodoc擴展和apidoc腳本,它們工作正常,但不會將Google文檔轉換爲rps。我會研究Anaconda。 – Enaid

+0

當然,那是因爲你需要讓拿破崙工作,他是解釋Google風格文檔的人。 – charlie80

+0

是的,我知道,這是我的問題的核心。應該有辦法讓Napoleon在沒有安裝全新的python發行版的情況下工作,不是嗎? – Enaid

相關問題