Python 使用sphinx生成API文檔

目錄

前言:

項目層級

Python項目docstring規范

Example Google Style Python Docstrings

Example NumPy Style Python Docstrings

reStructuredText Style

設置代碼docstrings風格(pycharm)

安裝sphinx

創建sphinx文檔項目

配置conf.py文件

編譯代碼為api文檔

編譯文檔(windows)

?編輯

設置API文檔主題樣式

異常處理

異常1:無法生成rst文件

異常2:WARNING: autodoc: failed to import module xxx;WARNING: autodoc: failed to import module 'xxx'; the following exception was raised:No module named 'xxx'

異常3:Encoding error:'utf8' codec can't decode byte 0xc0 in position 44:invalid start byte


前言:

最近需要把項目生成API文檔,在網上找了下發現sphinx這個框架用的比較多,研究了一下,發現還是挺贊的,只不過紙上得來終覺淺,絕知此事要躬行,別人的項目結構啥的和自己不一樣,網上基本都是單目錄的層級,但是實際項目往往都會有比較深的層級關系,所以還是踩了不少坑,在此結合自己的項目總結一下。


項目層級


一般情況真實項目都是會存在多種層級關系的,這是小編做的一個項目的層級結構: 

po_pattern/
├── __init__.py
├── config/
│ ├── env_const.py
├── pages/
│ ├── __init__.py
│ ├── APage.py
│ ├── BPage.py
└── testcase/
├── __init__.py
├── conftest.py
├── scenario_part1_test.py
├── scenario_part2_test.py


Ps:po上面還有一級項目目錄,跟源碼目錄同級創建doc目錄然后切換到doc目錄創建文檔項目
創建文檔項目

Python項目docstring規范

sphinx支持多種docstring規范,包括:restructuredtext、Google 風格、NumPy 風格。

Google風格的docstring:

注意:docstring中的代碼描述和關鍵字都要隔一行書寫,不然生成的API文檔中的關鍵字無法轉義

如下:函數的描述參數關鍵字Args、Returns關鍵字,中間都需要換一行不換行無法轉義關鍵字。

Example Google Style Python Docstrings

"""Example function with types documented in the docstring.

    :pep:`484` type annotations are supported. If attribute, parameter, and
    return types are annotated according to `PEP 484`_, they do not need to be
    included in the docstring:

    Args:
        param1 (int): The first parameter.
        param2 (str): The second parameter.

    Returns:
        bool: The return value. True for success, False otherwise.
    """

完整Google style docstrings

"""Example Google style docstrings.This module demonstrates documentation as specified by the `Google Python
Style Guide`_. Docstrings may extend over multiple lines. Sections are created
with a section header and a colon followed by a block of indented text.Example:Examples can be given using either the ``Example`` or ``Examples``sections. Sections support any reStructuredText formatting, includingliteral blocks::$ python example_google.pySection breaks are created by resuming unindented text. Section breaks
are also implicitly created anytime a new section starts.Attributes:module_level_variable1 (int): Module level variables may be documented ineither the ``Attributes`` section of the module docstring, or in aninline docstring immediately following the variable.Either form is acceptable, but the two should not be mixed. Chooseone convention to document module level variables and be consistentwith it.Todo:* For module TODOs* You have to also use

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/215346.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215346.shtml
英文地址,請注明出處:http://en.pswp.cn/news/215346.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

vim + ctags 跳轉, 查看函數定義

yum install ctags Package ctags-5.8-13.el7.x86_64 already installed and latest version 創建 /home/mzh/pptp-master/tags.sh #!/usr/bin/shWORKDIR/home/mzh/pptp-masterfind ${WORKDIR} -name "*.[c|h]" | xargs ctags -f ${WORKDIR}/tags find /usr/inclu…

final的安全發布

final的安全發布 兩個關鍵字“發布”“安全” 所謂發布通俗一點的理解就是創建一個對象,使這個對象能被當前范圍之外的代碼所使用 比如Object o new Object(); 然后接下來使用對象o 但是對于普通變量的創建,之前分析過,大致分為三個步驟&am…

k8s之身份認證與權限

Kubernetes 中提供了良好的多租戶認證管理機制,如 RBAC、ServiceAccount 還有各種策略等。 通過該文件可以看到已經配置了 RBAC 訪問控制 /usr/lib/systemd/system/kube-apiserver.service 1.1 認證 所有 Kubernetes 集群有兩類用戶:由 Kubernetes 管理的…

mysql數據庫學習筆記(1)

今天開始學mysql數據庫,為什么要學這個呢,因為數據庫可結構化存儲大量的數據信息,方便用戶進行有效的檢索和訪問。數據庫可有效地保持數據信息的一致性、完整性、降低數據冗余。數據庫可滿足應用的共享和安全方面的要求,把數據放在…

java--認識異常、自定義異常

1.異常體系 Error:代表的系統級別錯誤(屬于嚴重問題),也就是說系統一旦出現問題,sun公司會把這些問題封裝成Error對象給出來,說白了,Error是給sun公司自己用的,不是給我們程序員用的,因此我們開…

MacOS下homebrew的安裝與使用

安裝Homebrew //刪除原來的文件,可以在刪除前查看下Cellar文件夾下已安裝的包,homebrew將工具安裝在這個文件夾下,并在/usr/local/bin下建立連接 sudo -irm -rf /usr/local/Cellar /usr/local/.gi sudo chown -R liudong /usr/local //更新文件屬主為liu…

114. 二叉樹展開為鏈表 --力扣 --JAVA

題目 給你二叉樹的根結點 root ,請你將它展開為一個單鏈表: 展開后的單鏈表應該同樣使用 TreeNode ,其中 right 子指針指向鏈表中下一個結點,而左子指針始終為 null 。展開后的單鏈表應該與二叉樹 先序遍歷 順序相同。 解題思路 …

通過Ai幫我們寫前端界面設計

現在我要寫一個前端界面,from表單,讓用戶登錄使用的,提交表單之前先分析用戶名和密碼是否填的完成,并且檢查密碼必須滿足 包含大小寫,數字,密碼長度必須在8到20之間,不滿足不可以提交。用戶名必…

ethtool

ethtool ethtool是一個常用的命令行工具,用于配置和查詢以太網接口的驅動程序和硬件參數。它提供了一種簡單的方式來檢查和修改網絡接口的設置,以及獲取與以太網接口相關的統計數據和狀態信息。 ethtool可以執行以下常見的操作: 查詢接口信息…

【Hadoop】修改YARN配置文件

本節需要修改的 YARN 配置文件保存在$HADOOP_HOME/etc/haoop 目錄下,需要修改的文件共有 7 個,分別是:core-site.xml, hadoop-env.sh, hdfs-site.xml, yarn-site.xml, yarn-env.sh, mapred-site.xml, slave. 這些文件的用途: core…

Mysql:慢cpu過高慢sql查詢方法

通過 processlist查詢較為便捷,只是結果的info中只會顯示sql的前100個字符。 show processlist 通過下面語句查詢可顯示當前正在執行的完整sql。 SELECT * FROM information_schema.processlist WHERE COMMAND ‘Query’; 借助navicate數據庫工具的監控功能查詢庫的…

大數據技術2:大數據處理流程

前言:下圖是一個簡化的大數據處理流程圖,大數據處理的主要流程包括數據收集、數據存儲、數據處理、數據應用等主要環節。 1.1 數據收集 大數據處理的第一步是數據的收集。現在的中大型項目通常采用微服務架構進行分布式部署,所以數據的采集需…

【常用字符大全】含emoji表情

常用符號大全 ?????????????▲???↑↓◆◇⊙■□△▽─│??♂♀?????????▼???≈←→?◎☉★☆⊿※¡━┃??ツ?????©?Σ????卐√↖↗●?Θ◤◥︻〖〗┄┆℃℉?????¢€£∞?★?↙↘○?⊕◣◢︼【】┅┇…

Java 中適合使用隊列(Queue)的場景

在 Java 中,隊列(Queue)適合用于以下場景: 先進先出(FIFO)數據處理:當需要按照數據的添加順序進行處理時,可以使用隊列。例如,處理任務隊列、消息隊列等。 示例&#xff…

MySQL慢SQL優化思路

MySQL慢SQL優化思路 具體思路: 1、慢查詢日志記錄慢 SQL 2、explain 分析 SQL 的執行計劃 3、profile 分析執行耗時 4、Optimizer Trace 分析詳情 5、確定問題并采用相應的措施 1、查看慢日志 1.1 使用命令查詢慢日志配置 mysql> show variables like s…

mysql 5.7.34升級到5.7.44修補漏洞

mysql 5.7.34舊版本,漏掃有漏洞,升級到最新版本 舊版本5.7.34在 /home/mysql/mysql中安裝 備份舊版本數據還有目錄 數據庫備份升級 tar -xf mysql-5.7.44-el7-x86_64.tar #覆蓋舊版本數據庫文件 #注意看看文件是否和你起服務的用戶一樣 \cp -r mysql-5…

decomposition-based multi-objective algorithm4SPDPTW

關鍵詞 文章概述 研究背景 多目標選擇性接送和配送問題(PDPs):研究涉及多目標選擇性接送和配送問題,這些問題傳統上從單一目標角度進行探討,以尋找最具盈利性的請求集合,同時遵守一系列限制條件。 經濟和…

基于OpenCV+CNN+IOT+微信小程序智能果實采摘指導系統——深度學習算法應用(含python、JS工程源碼)+數據集+模型(五)

目錄 前言總體設計系統整體結構圖系統流程圖 運行環境Python環境TensorFlow 環境Jupyter Notebook環境Pycharm 環境微信開發者工具OneNET云平臺 模塊實現1. 數據預處理2. 創建模型并編譯3. 模型訓練及保存4. 上傳結果5. 小程序開發1)查詢圖片2)查詢識別結…

?os.path --- 常用路徑操作?

源代碼: Lib/posixpath.py (用于 POSIX) 和 Lib/ntpath.py (用于 Windows)。 此模塊實現了一些有用的路徑名稱相關函數。 要讀取或寫入文件請參見 open(),對于訪問文件系統請參閱 os 模塊。 傳給 path 形參的可以是字符串、字節串或者任何實現了 os.PathLike 協議的…

【收獲】成長之路

目錄 一、前言二、計算機方面三、專業知識方面四、總結 一、前言 四年,對于一個人的成長來說,是一個相當重要的階段。在這段時間里,我經歷了許多挑戰、收獲了許多成就,也在不斷地成長和改變。回首這四年的點點滴滴,我深…