【问题标题】:How do I tell ReadTheDocs to build my project packages from a sub-directory?如何告诉 ReadTheDocs 从子目录构建我的项目包?
【发布时间】:2020-10-12 10:41:32
【问题描述】:

我有一个包含三个 python 包的存储库:一个主包和两个附加包,以及共享文档。每个项目都在自己的目录中,有自己的 setup.py,如下所示:

  • 存储库
    • 主要项目
      • setup.py
    • 插件一
      • setup.py
    • 插件二
      • setup.py
    • 文档
      • RST 文件、RTD conf 等

以前,我使用 setuptools.find_packages() 来构建我的包,但是由于它们共享命名空间,所以包的内容会出现问题。所以我切换到指定我想要构建的包,例如

packages=["Main Package"]

但是,这破坏了我指定的 ReadTheDocs 自动构建

- method: setuptools
  path: Main Project

在 .readthedocs.yml 中,RTD 现在抱怨我的包(在主项目目录中)不存在,因为它试图构建它。

在我的项目中,我使用脚本来构建包,在其中我进入每个目录,运行其设置,然后移出。工作正常,我的包和文档都在本地构建。但是,看起来 RTD 仅使用定义的 path 来添加我的 setup.py 脚本,因此找不到源包,因为工作目录是父目录(但我可能错了!)。

我已经阅读了文档,包括最初添加该功能的https://github.com/readthedocs/readthedocs.org/issues/4354,但我自己还没有找到解决方案。

如何在构建包之前告诉 RTD 更改目录,或者是否有其他方法可以支持我的 repo 结构?

有问题的存储库是here

【问题讨论】:

    标签: setup.py read-the-docs


    【解决方案1】:

    我找到了解决办法:

    根据 RTD,我将本地构建脚本更改为使用根项目目录。然后我将指令package_dir={"": "[directory]"} 添加到每个项目的setup.py 中的setuptools.setup() 调用中。

    【讨论】:

      猜你喜欢
      • 2013-11-30
      • 2019-12-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-09
      • 1970-01-01
      相关资源
      最近更新 更多