gpt4 book ai didi

python - sphinx-apidoc 获取子模块,但 autodoc 没有记录它们

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:29 25 4
gpt4 key购买 nike

我一直致力于 PyQt5 的一个项目(可在此处找到:https://github.com/MaVCArt/StyledPyQt5),它使用包结构来使导入更合乎逻辑。到目前为止,我在使用 Sphinx 记录代码方面相对成功,至少在我介绍包结构之前是这样。 (以前,一切都在一个文件夹中)

问题如下:当我运行 sphinx-apidoc 时,一切正常,没有错误。更重要的是,autodoc 可以很好地获取我所有的子模块。这是我的一个 .rst 文件的内容:

styledpyqt package
==================

Subpackages
-----------

.. toctree::
:maxdepth: 8

styledpyqt.core

Submodules
----------

styledpyqt.StyleOptions module
------------------------------

.. automodule:: styledpyqt.StyleOptions
:members:
:undoc-members:
:show-inheritance:

styledpyqt.StyleSheet module
----------------------------

.. automodule:: styledpyqt.StyleSheet
:members:
:undoc-members:
:show-inheritance:


Module contents
---------------

.. automodule:: styledpyqt
:members:
:undoc-members:
:show-inheritance:

如您所知,所有子模块都被拾取。

但是,当我对此运行 make html 时,这些模块都没有被记录(这意味着 header 在那里,但没有显示任何方法、类或成员)。在生成的 HTML 中,它们只是标题,下面什么也没有。我知道它们已在代码注释中正确设置,因为从现在到包结构设置期间代码没有更改,也就是文档起作用时。

有没有人知道这可能是什么原因?

注意:为了帮助解决这个问题,这里是我的文件夹结构的简短分解:

styledpyqt
+ core
+ + base
+ + + __init__.py ( containing a class definition )
+ + + AnimationGroups.py
+ + + Animations.py
+ + __init__.py
+ + Color.py
+ + Float.py
+ + Gradient.py
+ + Int.py
+ + String.py
+ __init__.py
+ StyleOptions.py
+ StyleSheet.py

最佳答案

我最终解决了这个问题 - 似乎我忽略了一些错误,而 sphinx 工作得很好。我在 conf.py 中添加了包中包含的所有路径,它只是从那里开始工作:

配置文件:

sys.path.insert(0, os.path.abspath('../StyledPyQt5'))
sys.path.insert(0, os.path.abspath('../StyledPyQt5/styledpyqt'))
sys.path.insert(0, os.path.abspath('../StyledPyQt5/styledpyqt/core'))
sys.path.insert(0, os.path.abspath('../StyledPyQt5/styledpyqt/core/base'))

从那里开始,一切正常。

请务必注意,我在与我的代码不同的目录中生成我的文档。如果您使用 sphinx-apidoc 生成 .rst 文件,并且像我一样使用 gh-pages 分支来生成文档,请不要忘记在 master 分支上单独生成 HTML 页面。否则,将不会有任何代码来源。我的工作流程现在看起来像这样:

  1. 通过运行 git checkout master 确保我在 master 分支上
  2. 运行 sphinx-apidoc -F -P -o ..output_dir ..source_dir,其中 output_dir 与 source_dir 不同。
  3. 运行 make html,确保 _build/html 所在的目录不在我的存储库的任何一个分支中。
  4. 运行 git checkout gh-pages 切换到我的 gh-pages 分支,删除代码文件并将它们替换为 html 文档页面。
  5. 将 _build/html 中所有新生成的 HTML 文件复制到 gh-pages 主文件夹,覆盖所有更改。
  6. 运行 git commit -am "Docs Update"gh-pages 提交更改
  7. 运行 git push origin gh-pages 将提交推送到 github
  8. 运行git checkout master让我回到master分支

我知道有很多教程记录了这一点,但我希望这个小小的阐述可能会在某个时候对某人有所帮助。

关于python - sphinx-apidoc 获取子模块,但 autodoc 没有记录它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38885106/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com