自動生成Python項目文檔

Python有個自帶的工具可以生成Python的項目文檔叫pydoc姑曙,但是我覺得最好用的還是Python-Sphinx悠鞍,這里我們就講一下python-Sphinx的使用伦仍。

Sphinx可以自動獲取代碼中的(''' ''' 注釋)合冀,自動生成文檔错负。
先看看最后要成為的效果,先提起你的興趣

WX20170516-200302@2x.png

安裝Sphinx

pip install Sphinx

寫個我們需要生成文檔的項目-代碼
建一個測試項目code操禀, 下面有兩個Python文件test1.p y和test2.py

(venv) allenwoo@~/renren$ ls
code venv
(venv) allenwoo@~/renren$ ls code/
test1.py test2.py

test1.py代碼:

# -*-coding:utf-8-*-

class Test1():
    '''
    我是測試類褂策,負責(zé)測試
    '''
    def hello(self):
        '''
        負責(zé)打印Hello, 人人可以學(xué)Python
        :return: 
        '''
        print("人人可以學(xué)Python")
    def renren(self):
        '''
        測試Sphinx自動生成文檔
       
        :return: 
        '''
        print("自動生成文檔")
class Test2():

    def test_2(self):
        '''
        我也不知道寫什么好颓屑,反正我們這里是用來寫文檔的
        :return: 
        '''
        print("文檔自動生成測試2")
    def renren_2(self):
        '''
        所以我們開發(fā)的時候就應(yīng)該在這里寫好文檔斤寂,然后用Sphinx自動生成

        :return: 
        '''
        print("自動生成文檔2")

test2.py代碼:

# -*-coding:utf-8-*-

def init_test():
    '''
    用于初始化項目測試,不需要任何參數(shù)
    :return: 
    '''
    print("初始化項目")


def start():
    '''
    啟動項目入口揪惦,
    :return: 
    '''
    test(3)

def test(v):
    '''
    項目運行主要函數(shù)遍搞,需要傳入一個參數(shù)\n
    v:<int>
    :return: 
    '''

    print(v)

使用Python-Sphinx doc####

1. 選擇配置
除了以下項目外,其他的我都使用了默認值:

(venv) allenwoo@~/renren/doc$ sphinx-quickstart 
Welcome to the Sphinx 1.5.5 quickstart utility.

Please enter values for the following settings (just press Enter to
accept a default value, if one is given in brackets).

Enter the root path for documentation.
> Root path for the documentation [.]: .

> Separate source and build directories (y/n) [n]: y

> Project name: Code Pro
> Author name(s): Allen Woo

> Project version []: 1.0

> Project language [en]: zh_cn

> autodoc: automatically insert docstrings from modules (y/n) [n]: y
> doctest: automatically test code snippets in doctest blocks (y/n) [n]: y
> intersphinx: link between Sphinx documentation of different projects (y/n) [n]: y
> coverage: checks for documentation coverage (y/n) [n]: y
> viewcode: include links to the source code of documented Python objects (y/n) [n]: y

2.配置conf.py
在source/conf.py文件中加入如下代碼器腋, 導(dǎo)入自己的項目路徑

import os
import sys
sys.path.insert(0, os.path.abspath('./../../code'))

3. 生成rst文件
注意:-o 后面跟的是保存rst文件的路徑溪猿, 你的index.rst在哪個目錄钩杰,那你就指定哪個目錄。然后在后面的是你的項目(代碼)路徑

(venv) allenwoo@~/renren/doc$ sphinx-apidoc -o ./source ../code/
Creating file ./test1.rst.
Creating file ./test2.rst.
Creating file ./modules.rst.

4. 最后執(zhí)行make html,生成html文件

(venv) allenwoo@~/renren/doc$ make html
Running Sphinx v1.5.5
loading translations [zh_cn]... done
loading pickled environment... done
building [mo]: targets for 0 po files that are out of date
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.
build succeeded.

Build finished. The HTML pages are in build/html.

OK诊县!

5.現(xiàn)在我們用瀏覽器打開doc/build/html/index.html,如下:
如果你也和我一樣覺得頁面UI很丑讲弄,那就繼續(xù)看下一步,我們安裝一個theme(主題)

主頁面


Paste_Image.png

文檔頁面


Paste_Image.png

源碼頁面


Paste_Image.png

安裝Sphinx主題
python sphinx的主體包郵很多依痊,我最喜歡 readthedocs風(fēng)格的:
這種風(fēng)格的sphinx主體包叫sphinx_rtd_theme

可以下載安裝避除,也可以命令安裝。

命令安裝:

pip install sphinx_rtd_theme

下載地址:
https://github.com/rtfd/sphinx_rtd_theme
注意:下載安裝的配置和使用命令安裝的不一樣抗悍,具體可以看GIthub上的文檔:

配置:
編輯我們的source/conf.py
導(dǎo)入模塊:

import sphinx_rtd_theme

將 html_theme = "alabaster"改成如下驹饺,在加上html_theme_path

html_theme = "sphinx_rtd_theme"
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]

最后我們再執(zhí)行一次:make html
然后再訪問文檔钳枕,發(fā)現(xiàn)里面變的好看了缴渊,是不是?

WX20170516-200302@2x.png

好了鱼炒,我們自動生成文檔久到這里了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末衔沼,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子昔瞧,更是在濱河造成了極大的恐慌指蚁,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件自晰,死亡現(xiàn)場離奇詭異凝化,居然都是意外死亡,警方通過查閱死者的電腦和手機酬荞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評論 2 384
  • 文/潘曉璐 我一進店門搓劫,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人混巧,你說我怎么就攤上這事枪向。” “怎么了咧党?”我有些...
    開封第一講書人閱讀 156,723評論 0 345
  • 文/不壞的土叔 我叫張陵秘蛔,是天一觀的道長。 經(jīng)常有香客問我傍衡,道長深员,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評論 1 283
  • 正文 為了忘掉前任蛙埂,我火速辦了婚禮倦畅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘箱残。我一直安慰自己滔迈,他們只是感情好止吁,可當我...
    茶點故事閱讀 65,412評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著燎悍,像睡著了一般敬惦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上谈山,一...
    開封第一講書人閱讀 49,760評論 1 289
  • 那天俄删,我揣著相機與錄音,去河邊找鬼奏路。 笑死畴椰,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的鸽粉。 我是一名探鬼主播斜脂,決...
    沈念sama閱讀 38,904評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼触机!你這毒婦竟也來了帚戳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評論 0 266
  • 序言:老撾萬榮一對情侶失蹤儡首,失蹤者是張志新(化名)和其女友劉穎片任,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蔬胯,經(jīng)...
    沈念sama閱讀 44,118評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡对供,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,456評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了氛濒。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片产场。...
    茶點故事閱讀 38,599評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖泼橘,靈堂內(nèi)的尸體忽然破棺而出涝动,到底是詐尸還是另有隱情,我是刑警寧澤炬灭,帶...
    沈念sama閱讀 34,264評論 4 328
  • 正文 年R本政府宣布醋粟,位于F島的核電站,受9級特大地震影響重归,放射性物質(zhì)發(fā)生泄漏米愿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,857評論 3 312
  • 文/蒙蒙 一鼻吮、第九天 我趴在偏房一處隱蔽的房頂上張望育苟。 院中可真熱鬧,春花似錦椎木、人聲如沸违柏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漱竖。三九已至禽篱,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間馍惹,已是汗流浹背躺率。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留万矾,地道東北人悼吱。 一個月前我還...
    沈念sama閱讀 46,286評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像良狈,于是被迫代替她去往敵國和親后添。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,465評論 2 348

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

  • # Python 資源大全中文版 我想很多程序員應(yīng)該記得 GitHub 上有一個 Awesome - XXX 系列...
    aimaile閱讀 26,448評論 6 428
  • GitHub 上有一個 Awesome - XXX 系列的資源整理,資源非常豐富们颜,涉及面非常廣吕朵。awesome-p...
    若與閱讀 18,629評論 4 418
  • 環(huán)境管理管理Python版本和環(huán)境的工具。p–非常簡單的交互式python版本管理工具窥突。pyenv–簡單的Pyth...
    MrHamster閱讀 3,787評論 1 61
  • 音樂點擊這里:遙遠的旅途 對面的座位上,還殘留著梅德爾的香氣硫嘶,久久不散-----踏上旅程的鐵郎阻问,感到很寂寞。沦疾。称近。動...
    秋天廣場閱讀 7,223評論 18 41
  • 初識簡書,是在去年冬天哮塞,先生對我說刨秆,“有人可以在手機上發(fā)表文章分享鏈接到朋友圈,要不你也試試忆畅?”我很不以為然衡未,并沒...
    K圓月兒閱讀 553評論 14 8