pdoc3或Sphinx的目录嵌套模块



代码目录如下所示:我需要为所有模块生成文档,如sub1,sub2,submoduleA1,submoduleB1等。同样如submoduleB2.py所示:所有从其他模块/子模块导入的模块

<workspace>
└── toolbox (main folder)
├── __init__.py 
│   
├── sub
│   ├── __init__.py
│   ├── sub1.py
│   └── sub2.py     
│   
├── subpackageA
│   ├── __init__.py
│   ├── submoduleA1.py
│   └── submoduleA2.py
│   
└── subpackageB
├── __init__.py
├── submoduleB1.py
└── submoduleB2.py code[from sub import sub1
from subpackageA import submoduleA2 and so on]

submoduleB2.py

代码结构
from __future__ import absolute_import, division
import copy
import logging
import numpy as np
import pandas as pd
from dc.dc import DataCleaning
from sub.sub1 import ToolboxLogger
from subpackageA import pan
LOGGER = ToolboxLogger(
"MATH_FUNCTIONS", enableconsolelog=True, enablefilelog=False, loglevel=logging.DEBUG
).logger
"""
Calculations also take into account units of the tags that are passed in
"""
def spread(tag_list):
"""
Returns the spread of a set of actual tag values
:param tag_list: List of tag objects
:type tag_list: list
:return: Pandas Series of spreads
:rtype: Pandas Series
:example:
>>> tag_list = [tp.RH1_ogt_1,
tp.RH1_ogt_2,
tp.RH1_ogt_3,
tp.RH1_ogt_4,
tp.RH1_ogt_5,
tp.RH1_ogt_6]
>>> spread = pan.spread(tag_list)
"""
# use the same units for everything
units_to_use = tag_list[0].units
idxs = tag_list[0].actuals.index
spread_df = pd.DataFrame(index=idxs)
spread_series = spread_df.max(axis=1).copy()
return Q_(spread_series, units_to_use)

我尝试使用anaconda提示符通过导航到工具箱文件夹来运行pdoc命令,并执行以下命令

pdoc --html --external-links --all-submodules preprocess/toolbox/subpackageA

在执行此命令后,添加"subpackageA"在工具箱下创建了一个文件夹,里面有index.html文件,但是全是空白的

然后我尝试通过提供特定的模块名称

来生成文档
pdoc --html --external-links --all-submodules preprocess/toolbox/submoduleB2.py

,但收到以下错误:文件"C:Userspreprocess/toolbox/submoduleB2.py",第16行,在从sub1导入sub1importterror:没有名为sub.sub1的模块

你能告诉我如何使用pdoc生成完整目录的文档吗?或者是否有其他包可以自动生成文档?我甚至尝试过Sphnix,但是在配置文件

中添加模块/子模块路径时遇到了问题。

如果pdoc3无法在python路径中找到该模块的导入,则会为该模块抛出这种错误。一个解决方案是将

import os, sys
syspath = os.path.dirname(os.path.abspath(__file__))
sys.path.append(path)

放到每个子目录的__init__.py文件中。

最新更新