python pydoc生成API文檔的實(shí)現(xiàn)
pydoc是python內(nèi)置的一個(gè)文檔生成模塊。
pydoc 模塊會(huì)根據(jù) Python 模塊來(lái)自動(dòng)生成文檔。 生成的文檔可在控制臺(tái)中顯示為文本頁(yè)面,提供給 Web 瀏覽器訪(fǎng)問(wèn)或者保存為 HTML 文件。
對(duì)于模塊、類(lèi)、函數(shù)和方法,顯示的文檔內(nèi)容取自文檔字符串(即 __doc__
屬性),并會(huì)遞歸地從其帶文檔的成員中獲取。 如果沒(méi)有文檔字符串,pydoc 會(huì)嘗試從類(lèi)、函數(shù)或方法定義上方,或是模塊頂部的注釋行段落獲取 (參見(jiàn) inspect.getcomments()).
內(nèi)置函數(shù) help() 會(huì)發(fā)起調(diào)用交互式解釋器的在線(xiàn)幫助系統(tǒng),該系統(tǒng)使用 pydoc 在終端上生成文本形式的文檔內(nèi)容。 同樣的文本文檔也可以在 Python 解釋器以外通過(guò)在操作系統(tǒng)的命令提示符下以腳本方式運(yùn)行 pydoc 來(lái)查看。 例如,運(yùn)行
python -m pydoc sys
輸出如下:
Help on built-in module sys: NAME sys MODULE REFERENCE https://docs.python.org/3.11/library/sys.html -- More --
在終端提示符下將通過(guò) sys 模塊顯示文檔內(nèi)容,其樣式類(lèi)似于 Unix man 命令所顯示的指南頁(yè)面。 pydoc 的參數(shù)可以為函數(shù)、模塊、包,或帶點(diǎn)號(hào)的對(duì)模塊中的類(lèi)、方法或函數(shù)以及包中的模塊的引用。 如果傳給 pydoc 的參數(shù)像是一個(gè)路徑(即包含所在操作系統(tǒng)的路徑分隔符,例如 Unix 的正斜杠),并且其指向一個(gè)現(xiàn)有的 Python 源文件,則會(huì)為該文件生成文檔內(nèi)容。
備注:為了找到對(duì)象及其文檔內(nèi)容,pydoc 會(huì)導(dǎo)入文檔所在的模塊。 因此,任何模塊層級(jí)的代碼都將被執(zhí)行。 請(qǐng)使用 if __name__ == '__main__':
語(yǔ)句來(lái)確保一個(gè)文件的特定代碼僅在作為腳本被發(fā)起調(diào)用時(shí)執(zhí)行而不是在被導(dǎo)入時(shí)執(zhí)行。
當(dāng)打印輸出到控制臺(tái)時(shí),pydoc 會(huì)嘗試對(duì)輸出進(jìn)行分頁(yè)以方便閱讀。 如果設(shè)置了 PAGER
環(huán)境變量,pydoc 將使用該變量值作為分頁(yè)程序。
在參數(shù)前指定 -w
旗標(biāo)將把 HTML 文檔寫(xiě)入到當(dāng)前目錄下的一個(gè)文件中,而不是在控制臺(tái)中顯示文本。
在參數(shù)前指定 -k
旗標(biāo)將在全部可用模塊的提要行中搜索參數(shù)所給定的關(guān)鍵字,具體方式同樣類(lèi)似于 Unix man 命令。 模塊的提要行就是其文檔字符串的第一行。
你還可以使用 pydoc 在本機(jī)上啟動(dòng)一個(gè) HTTP 服務(wù)器并向來(lái)訪(fǎng)的 Web 瀏覽器展示文檔。 python -m pydoc -p 1234 將在 1234 端口上啟動(dòng) HTTP 服務(wù)器,允許在你所用的 Web 瀏覽器上通過(guò) http://localhost:1234/
來(lái)瀏覽文檔。 指定 0
作為端口號(hào)將任意選擇一個(gè)未使用的端口。
python -m pydoc -n <hostname> 將啟動(dòng)在給定主機(jī)名上監(jiān)聽(tīng)的服務(wù)器。 默認(rèn)的主機(jī)名為 'localhost' 但是如果你希望能從其他機(jī)器上搜索該服務(wù)器,你可能會(huì)想要改變服務(wù)器所響應(yīng)的主機(jī)名。 在開(kāi)發(fā)階段此特性會(huì)特別有用,如果你想要在一個(gè)容器中運(yùn)行 pydoc 的話(huà)。
python -m pydoc -b 將啟動(dòng)服務(wù)器并額外打開(kāi)一個(gè) Web 瀏覽器訪(fǎng)問(wèn)模塊索引頁(yè)。 所發(fā)布的每個(gè)頁(yè)面頂端都帶有導(dǎo)航欄,你可以點(diǎn)擊 Get 來(lái)獲取特定條目的幫助信息,點(diǎn)擊 Search 在所有模塊的摘要行中搜索某個(gè)關(guān)鍵詞,或點(diǎn)擊 Module index, Topics 和 Keywords 前往相應(yīng)的頁(yè)面。
在本地瀏覽器打開(kāi)生成的api文檔:
python -m pydoc -p 1234 -b
生成后會(huì)在本地啟動(dòng)一個(gè)web服務(wù)器:
(venv) PS H:\測(cè)試\requests-main> python -m pydoc -p 1234 -b Server ready at http://localhost:1234/ Server commands: [b]rowser, [q]uit server>
當(dāng) pydoc 生成文檔內(nèi)容時(shí),它會(huì)使用當(dāng)前環(huán)境和路徑來(lái)定位模塊。 因此,發(fā)起調(diào)用 pydoc spam 得到的文檔版本會(huì)與你啟動(dòng) Python 解釋器并輸入 import spam
時(shí)得到的模塊版本完全相同。
核心模塊的模塊文檔位置對(duì)應(yīng)于 https://docs.python.org/X.Y/library/
其中 X
和 Y
是 Python 解釋器的主要版本號(hào)和小版本號(hào)。 這可通過(guò)設(shè)置 PYTHONDOCS
環(huán)境變量來(lái)重載為指向不同的 URL 或包含 Library Reference Manual 頁(yè)面的本地目錄。
到此這篇關(guān)于python pydoc生成API文檔的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)python pydoc生成API文檔內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python調(diào)用pyaudio使用麥克風(fēng)錄制wav聲音文件的教程
這篇文章主要介紹了python調(diào)用pyaudio使用麥克風(fēng)錄制wav聲音文件的教程,詳細(xì)的給大家介紹了pyaudio庫(kù)的安裝與使用,需要的朋友可以參考下2019-06-06Python Threading 線(xiàn)程/互斥鎖/死鎖/GIL鎖
這篇文章主要介紹了Python Threading 線(xiàn)程/互斥鎖/死鎖/GIL鎖的相關(guān)知識(shí),本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07Flask框架請(qǐng)求鉤子與request請(qǐng)求對(duì)象用法實(shí)例分析
這篇文章主要介紹了Flask框架請(qǐng)求鉤子與request請(qǐng)求對(duì)象用法,結(jié)合實(shí)例形式詳細(xì)分析了Flask框架請(qǐng)求鉤子與request請(qǐng)求對(duì)象相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下2019-11-11總結(jié)python 三種常見(jiàn)的內(nèi)存泄漏場(chǎng)景
這篇文章主要介紹了總結(jié)python 三種常見(jiàn)的內(nèi)存泄漏場(chǎng)景,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-11-11python 將html轉(zhuǎn)換為pdf的幾種方法
這篇文章主要介紹了python 將html轉(zhuǎn)換為pdf的幾種方法,幫助大家更好的理解和使用python,感興趣的朋友可以了解下2020-12-12python讀取.mat文件的數(shù)據(jù)及實(shí)例代碼
這篇文章主要介紹了python讀取.mat文件的數(shù)據(jù)的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值 ,需要的朋友可以參考下2019-07-07python中的opencv和PIL(pillow)轉(zhuǎn)化操作
這篇文章主要介紹了python中的opencv和PIL(pillow)轉(zhuǎn)化操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例
今天小編就為大家分享一篇將tensorflow的ckpt模型存儲(chǔ)為npy的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-07-07Python機(jī)器學(xué)習(xí)利用隨機(jī)森林對(duì)特征重要性計(jì)算評(píng)估
本文是對(duì)隨機(jī)森林如何用在特征選擇上做一個(gè)簡(jiǎn)單的介紹。隨機(jī)森林非常簡(jiǎn)單,易于實(shí)現(xiàn),計(jì)算開(kāi)銷(xiāo)也很小,更令人驚奇的是它在分類(lèi)和回歸上表現(xiàn)出了十分驚人的性能2021-10-10