代码目录如下所示:我需要为所有模块生成文档,如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
文件中。