python文檔生成

一捆蜀、普通文檔創(chuàng)建

pip install sphinx # 安裝依賴
sphinx-quickstart # 創(chuàng)建文檔向?qū)?
# 上一步將創(chuàng)建如下目錄
├─build # 編譯后的文件存放目錄
└─source  # 文檔源文件目錄
    ├─_static
    ├─_templates
    ├─conf.py # 文檔配置信息
    └─index.rst # 首頁(yè),rst為reStructuredText簡(jiǎn)寫
└─make.bat
└─Makefile

先不用管太多轰传,運(yùn)行命令
sphinx-build -b html .\source .\build

make html
看一下生成的build下生成的文件驴党,tree \f ./build

├─doctrees
│      environment.pickle
│      index.doctree
│
└─html # 生成的最終文檔
    │  .buildinfo
    │  genindex.html
    │  index.html # 主文件
    │  objects.inv
    │  search.html
    │  searchindex.js
    │
    ├─_sources
    │      index.rst.txt
    │
    └─_static # 資源文件
            alabaster.css
            ...
            jquery.js
            ....
            minus.png
          

打開(kāi)html/index.html 就可以看到文檔。

解讀一下index.rst, #之后的為注釋获茬,這不是rst文件的語(yǔ)法港庄,只是為了說(shuō)明內(nèi)部含義

.. toctree::   # 文檔入口方法
   :maxdepth: 2  # 參數(shù)為maxdepth, 值為2
   :caption: Contents: # 同上也是參數(shù),綜合以上,可以理解為調(diào)用了方法 toctree(maxdepth=2,caption='Contents')
                 # 空一行锦茁,以下代碼不是自動(dòng)生成攘轩,是為了說(shuō)明語(yǔ)法而加入的。
    subdir1/subdir11 # 子目錄1码俩,其下須有 index.rst文件內(nèi)含 ..toctree:: 命令,subdir11同樣如此。 注意歼捏,這里由于maxdepth限定稿存,所以只能到subdir11,第三級(jí)目錄無(wú)法在該文件中添加
    subdir2 # 子目錄2瞳秽“曷模可見(jiàn)index.rst文件就是組織文檔結(jié)構(gòu)的文件,子目錄下保持這種結(jié)構(gòu)练俐,就可以完整的生成一個(gè)有層級(jí)的文檔袖迎。

Indices and tables # 生成python文檔時(shí)起作用
==================

* :ref:`genindex`  # * 表示li的記號(hào),:ref:表示一個(gè)引用腺晾,genindex為 index:: 命令所產(chǎn)生的索引燕锥,見(jiàn)后面的代碼,
* :ref:`modindex`
* :ref:`search`

.. index:: # 僅僅作為顯示example悯蝉,并沒(méi)有對(duì)應(yīng)到module归形,真實(shí)例子,須參考下面的說(shuō)明
    single: 關(guān)鍵詞1; 關(guān)鍵詞2; 關(guān)鍵詞3;   # 
    pair: 蘋果; 香蕉
    triple: module; search; path

.. toctree::
rst格式參考
rst標(biāo)記語(yǔ)言官方參

二鼻由、python 文檔生成 參考

)
先創(chuàng)建兩個(gè)python文件
mkdir src && cd src && touch demo1.py && touche demo2.py

  • demo1.py
class Demo1():
    """類的功能說(shuō)明"""

    def add(self,a,b):
        """兩個(gè)數(shù)字相加暇榴,并返回結(jié)果"""
        return a+b
    
    def rest_style(self,a,b):
        """
        This is a reST style.

        :param a: 加數(shù)
        :param b: 被加數(shù)
        :returns: a+b
        :raises keyError: raises an exception
        """
        return a+b


    def google_style(self, arg1, arg2):
        """函數(shù)功能.

        函數(shù)功能說(shuō)明.

        Args:
            arg1 (int): arg1的參數(shù)說(shuō)明
            arg2 (str): arg2的參數(shù)說(shuō)明

        Returns:
            bool: 返回值說(shuō)明

        """
        return True

    def numpy_style(self, arg1, arg2):
        """函數(shù)功能.

        函數(shù)功能說(shuō)明.

        Parameters
        ----------
        arg1 : int
            arg1的參數(shù)說(shuō)明
        arg2 : str
            arg2的參數(shù)說(shuō)明

        Returns
        -------
        bool
            返回值說(shuō)明

        """
        return True

  • demo2.py
def my_function(a, b):
    """函數(shù)功能說(shuō)明 numpy style

     >>> my_function(2, 3)
     6
     >>> my_function('a', 3)
     'aaa'

    """
    return a * b
  • 修改source/conf.py
# 文件首部,加入module 系統(tǒng)path蕉世,否則無(wú)法加載module
import os
import sys
sys.path.insert(0, os.path.abspath('../src'))

# 修改extension
extensions = ['sphinx.ext.autodoc',
    'sphinx.ext.doctest',
    'sphinx.ext.intersphinx',
    'sphinx.ext.todo',
    'sphinx.ext.coverage',
    'sphinx.ext.napoleon', # 兼容 google style和numpy style
    'sphinx.ext.mathjax']
  • python文件轉(zhuǎn)為rst文件
    sphinx-apidoc -o ./source ./src/
    可以看到source文件夾下多了三個(gè)文件:demo1.rst,demo2.rst,module.rst

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蔼紧,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子狠轻,更是在濱河造成了極大的恐慌奸例,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,451評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件哈误,死亡現(xiàn)場(chǎng)離奇詭異哩至,居然都是意外死亡躏嚎,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,172評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門菩貌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)卢佣,“玉大人,你說(shuō)我怎么就攤上這事箭阶⌒椴瑁” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,782評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵仇参,是天一觀的道長(zhǎng)嘹叫。 經(jīng)常有香客問(wèn)我,道長(zhǎng)诈乒,這世上最難降的妖魔是什么罩扇? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,709評(píng)論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮怕磨,結(jié)果婚禮上喂饥,老公的妹妹穿的比我還像新娘。我一直安慰自己肠鲫,他們只是感情好员帮,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,733評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著导饲,像睡著了一般捞高。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上渣锦,一...
    開(kāi)封第一講書(shū)人閱讀 51,578評(píng)論 1 305
  • 那天硝岗,我揣著相機(jī)與錄音,去河邊找鬼泡挺。 笑死辈讶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的娄猫。 我是一名探鬼主播贱除,決...
    沈念sama閱讀 40,320評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼媳溺!你這毒婦竟也來(lái)了月幌?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,241評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤悬蔽,失蹤者是張志新(化名)和其女友劉穎扯躺,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,686評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡录语,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,878評(píng)論 3 336
  • 正文 我和宋清朗相戀三年倍啥,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片澎埠。...
    茶點(diǎn)故事閱讀 39,992評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡虽缕,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒲稳,到底是詐尸還是另有隱情氮趋,我是刑警寧澤,帶...
    沈念sama閱讀 35,715評(píng)論 5 346
  • 正文 年R本政府宣布江耀,位于F島的核電站剩胁,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏祥国。R本人自食惡果不足惜昵观,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,336評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望舌稀。 院中可真熱鬧索昂,春花似錦、人聲如沸扩借。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,912評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)潮罪。三九已至,卻和暖如春领斥,著一層夾襖步出監(jiān)牢的瞬間嫉到,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,040評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工月洛, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留何恶,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,173評(píng)論 3 370
  • 正文 我出身青樓嚼黔,卻偏偏與公主長(zhǎng)得像细层,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唬涧,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,947評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容