首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么autoclass在这里创建别名?

为什么autoclass在这里创建别名?
EN

Stack Overflow用户
提问于 2021-07-19 06:30:52
回答 2查看 202关注 0票数 0

简而言之,我有一些代码可以工作,但是如果我稍微调整一下,有些事情就会分崩离析,我似乎也弄不清原因。我希望比我更有经验的人能给我一些斯芬克斯的指点。我已经搜索过了,以前也没有看到过类似的问题。

起作用的东西

我有包my_pkg,它包含模块mod,包含许多类和函数。

如果我在我的conf.py中使用下面一行

代码语言:javascript
复制
sys.path.insert(0, os.path.abspath('../my_pkg'))

其中一个.rst文件包含以下内容

代码语言:javascript
复制
.. automodule:: mod

.. autoclass:: mod.classA
   :members:

.. autofunction:: mod.functionA

.. autoclass:: mod.classB
   :members:

然后,当我运行我的文档时,一切都正常!但是,它们将输出文档中的调用签名呈现为mod.classA (例如),我更希望它们呈现为my_pkg.mod.classA。

不起作用的东西

为了进行此更改,我认为我应该像这样从conf.py中删除pkg

代码语言:javascript
复制
sys.path.insert(0, os.path.abspath('../my_pkg'))

然后将我的.rst文件更改为从pkg开始查看,如下所示:

代码语言:javascript
复制
.. automodule:: my_pkg.mod

.. autoclass:: my_pkg.mod.classA
   :members:

.. autofunction:: my_pkg.mod.functionA

.. autoclass:: my_pkg.mod.classB
   :members:

如果我这样做,自动模块指令不会显示任何内容,因此也不会显示模块的docstring (我没有收到任何关于autodoc找不到pkg.mod的警告,所以我觉得这很奇怪)。输出,输出

代码语言:javascript
复制
.. autoclass:: my_pkg.mod.classA
   :members:

就是简单的alias of my_pkg.mod...。尽管这是错误的。尽管如此,类签名中的"source“按钮仍然正确地链接到该类的代码。最后,剩下的函数和类按照我希望的那样呈现。因为某种原因,狮身人面像看起来真的不想记录这个模块或classA。

这个问题把我逼疯了。它发生在多个主题,所以我相信这是一个斯芬克斯的问题。我尝试将classA的docstring更改为“foo”。我尝试在文档中移动classA,所以这不是真正代码的第一步。我试过重命名classA。似乎没有什么能解决它,而classA始终是问题所在。

有人知道为什么会发生这种事吗?我正在使用Sphinxv4.1.1和Sphinx Themev0.5.2(这两个版本在本文发表时都是最新版本)。

EN

回答 2

Stack Overflow用户

发布于 2021-07-19 16:10:19

编辑:我最初的想法是完全错误的,但是现在我已经能够多次再现这个问题了。mzjn是正确的,我没有提供足够的上下文。

这个问题似乎是由于my_pkg是一个被模仿的导入引起的。在conf.py里我有一条线

代码语言:javascript
复制
autodoc_mock_imports = ['my_pkg', 'numpy', 'scipy', 'pandas']

我的发现是,如果我尝试从包根开始文档化(即,my_pkg是自动模式和自动类的第一个参数,如不起作用的部分所述)和my_pkg是一个模拟的导入,狮身人面像会引发上述问题。在更改结构时,我忘记了从模拟导入中删除my_pkg (这仍然不能真正解释为什么存在这种行为,但至少我找到了如何再现它)。

票数 0
EN

Stack Overflow用户

发布于 2021-07-19 21:29:45

您可能需要为类/函数定义__module__属性,如another Stack Overflow post中所述。

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

https://stackoverflow.com/questions/68436013

复制
相关文章

相似问题

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