首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >包含嵌套模块的目录的pdoc3或Sphinx

包含嵌套模块的目录的pdoc3或Sphinx
EN

Stack Overflow用户
提问于 2022-05-23 12:41:45
回答 1查看 380关注 0票数 1

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

代码语言:javascript
复制
<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]

子模块B2.py的代码结构

代码语言:javascript
复制
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命令,方法是将它导航到工具箱文件夹,并执行以下命令

代码语言:javascript
复制
pdoc --html --external-links --all-submodules preprocess/toolbox/subpackageA

执行此命令后,在工具箱下创建了一个带有subpackageA文件的“index.html”文件夹,但全部为空白。

然后,我试图通过提供特定的模块名来生成文档。

代码语言:javascript
复制
pdoc --html --external-links --all-submodules preprocess/toolbox/submoduleB2.py

但是收到以下错误:文件"C:\Users\preprocess/toolbox/submoduleB2.py",第16行,从子导入sub1 ImportError: No模块名为sub.sub1

您能告诉我如何使用pdoc生成完整目录的文档吗?或者还有其他自动生成文档的包吗?我甚至尝试过Sphnix,但是在配置文件中添加模块/子模块路径时遇到了问题。

EN

回答 1

Stack Overflow用户

发布于 2022-07-31 08:57:47

如果pdoc3在python路径中找不到对该模块的导入,那么它似乎正在为模块抛出这种错误。一种解决办法是

代码语言:javascript
复制
import os, sys
syspath = os.path.dirname(os.path.abspath(__file__))
sys.path.append(path)

进入每个子目录中的__init__.py文件。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72348692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档