【问题标题】:Read the docs does not generate method documentation阅读文档不会生成方法文档
【发布时间】:2018-02-17 11:38:04
【问题描述】:

我创建了一个依赖于pypiwin32 包的python library。对于某些功能,他们使用_winreg 包。它可以在 Windows 上运行,但是 RTD virtualenv 不在 Windows 上运行,并且该软件包不可用。由于它是 python 本身的一部分,而不是 pypi,所以我无法使其成为依赖项。

每次我从源代码构建文档时,都会因缺少 _winreg 包而失败。

我尝试在 setup.py 中使用类似这样的内容删除对 pypiwin32 的依赖,仅适用于 RTD:

if os.environ.get('READTHEDOCS') == 'True':
    REQUIRED = []
else:
    REQUIRED = [
        "pypiwin32"
    ]

它适用于所有 .rst Sphinx 文件。另一方面,不会生成函数文档。在本地计算机 (Windows) 上,所有内容均已正确记录。

注意: Read the docs 文档是从我的 github 项目的 rtd 分支生成的。

有什么解决方法吗?

谢谢。

【问题讨论】:

    标签: python python-sphinx read-the-docs


    【解决方案1】:

    我可能已经找到了可行的解决方案。由于 Read The Docs 不支持 _winreg,因此我禁用了 Read The Docs 对 pypiwin32 的全部依赖。

    # ... part of setup.py
    if os.environ.get('READTHEDOCS') == 'True':
        REQUIRED = []
    else:
        REQUIRED = [
            "pypiwin32"
        ]
    

    READTHEDOCS 是仅在 RTD 上可用的环境变量 see more

    这中断了我图书馆的所有呼叫。因此,我创建了另一个带有模型函数的文件,仅用于 Read The Docs:

    # ... part of __init__.py
    if os.environ.get('READTHEDOCS') != 'True':
        from win32api import GetModuleHandle
        # ... import rest of win32api functions
    else:
        from .read_the_docs import *
    

    以及read_the_docs.py的内容:

    def GetMOduleHandle(*args, **kwargs):
        pass
    
    # ... rest of file
    

    这样,本地构建使用完整的pypiwin32_winreg,但在阅读文档时,Sphinx 使用这种“模型”实用程序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-16
      • 2020-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-15
      • 2018-11-11
      • 2020-08-15
      相关资源
      最近更新 更多