pydoc
— 文件生成器和線上幫助系統¶
原始碼: Lib/pydoc.py
pydoc
模組自動從 Python 模組生成文件。文件可以以文字頁面的形式顯示在控制檯上,提供給網路瀏覽器,或儲存到 HTML 檔案中。
對於模組、類、函式和方法,顯示的文件來源於物件的 docstring(即 __doc__
屬性),並遞迴地來源於其可文件化的成員。如果沒有 docstring,pydoc
會嘗試從原始碼檔案中類、函式或方法定義正上方的註釋行塊中,或從模組頂部獲取描述(參見 inspect.getcomments()
)。
內建函式 help()
在互動式直譯器中呼叫線上幫助系統,該系統使用 pydoc
在控制檯上生成文件文字。同樣的文字文件也可以在 Python 直譯器外部透過在作業系統的命令列提示符下執行 pydoc 指令碼來檢視。例如,執行
python -m pydoc sys
在 shell 提示符下,將顯示關於 sys
模組的文件,其風格類似於 Unix man 命令顯示的手冊頁。pydoc 的引數可以是函式、模組或包的名稱,或者是模組內或包內模組中類、方法或函式的點式引用。如果 pydoc 的引數看起來像一個路徑(即,它包含您的作業系統的路徑分隔符,例如 Unix 中的斜槓),並且引用了一個現有的 Python 原始檔,那麼將為該檔案生成文件。
備註
為了找到物件及其文件,pydoc
會匯入要文件化的模組。因此,任何模組級別的程式碼都會在這種情況下執行。使用 if __name__ == '__main__':
保護來確保只有當檔案作為指令碼被呼叫而不是僅僅被匯入時才執行程式碼。
當在控制檯列印輸出時,pydoc 會嘗試對輸出進行分頁以便於閱讀。如果設定了 MANPAGER
或 PAGER
環境變數,pydoc 將使用其值作為分頁程式。當兩者都設定時,使用 MANPAGER
。
在引數前指定 -w
標誌將導致 HTML 文件寫入當前目錄中的檔案,而不是在控制檯顯示文字。
在引數前指定 -k
標誌將搜尋所有可用模組的摘要行以查詢作為引數給出的關鍵字,同樣類似於 Unix man 命令。模組的摘要行是其文件字串的第一行。
您還可以使用 pydoc 在本地機器上啟動一個 HTTP 伺服器,該伺服器將向訪問的 Web 瀏覽器提供文件。python -m pydoc -p 1234 將在埠 1234 啟動一個 HTTP 伺服器,允許您在您首選的 Web 瀏覽器中瀏覽 https://:1234/
的文件。將埠號指定為 0
將選擇一個任意未使用的埠。
python -m pydoc -n <hostname> 將啟動伺服器並在給定的主機名上偵聽。預設情況下,主機名是 'localhost',但如果您希望伺服器可以從其他機器訪問,您可能需要更改伺服器響應的主機名。在開發過程中,如果您想在容器中執行 pydoc,這尤其有用。
python -m pydoc -b 將啟動伺服器,並額外開啟一個 Web 瀏覽器到模組索引頁。每個提供的頁面頂部都有一個導航欄,您可以在其中 獲取 單個專案的幫助,搜尋 所有模組中摘要行包含關鍵字的模組,並轉到 模組索引、主題 和 關鍵字 頁面。
當 pydoc 生成文件時,它使用當前環境和路徑來定位模組。因此,呼叫 pydoc spam 精確地文件了您在啟動 Python 直譯器並鍵入 import spam
時會獲得的模組版本。
核心模組的模組文件假定位於 https://docs.python.club.tw/X.Y/library/
,其中 X
和 Y
是 Python 直譯器的主要和次要版本號。這可以透過將 PYTHONDOCS
環境變數設定為不同的 URL 或包含庫參考手冊頁的本地目錄來覆蓋。
3.2 版中更新: 添加了 -b
選項。
3.3 版中更新: 移除了 -g
命令列選項。
3.4 版中更新: pydoc
現在使用 inspect.signature()
而不是 inspect.getfullargspec()
來從可呼叫物件中提取簽名信息。
3.7 版中更新: 添加了 -n
選項。