【发布时间】:2017-04-24 18:51:49
【问题描述】:
我正在尝试实现this question 的答案之一。但是,我没有成功,因为当我运行时
> sphinx-autogen -o generated *.rst
我得到错误
无法导入“MyMod.X”:没有名为 MyMod.X 的模块
无法导入“MyMod.Y”:没有名为 MyMod.Y 的模块
无法导入“MyMod.Z”:没有名为 MyMod.Z 的模块
在我的.rst 文件中,有一个带有以下行的:
.. 自动模块:: MyMod.X
(MyMod.Y 和 MyMod.Z 也是如此)。
我在子目录docs 中运行它。在包含docs 的父目录中,还有一个子目录MyMod,其中包含__init__.py、X.py、Y.py 和Z.py。 docs 中的conf.py 文件在import sys 之后紧跟sys.path.insert(0, os.path.abspath('../'))。
我能找到的最接近的相关问题是this,但那里的答案似乎表明可以通过在路径中插入'../' 来解决这个问题,我已经这样做了。还有sphinx-autobuild可以很开心的找到这些模块,所以我觉得不是这个问题。
有趣的是,将我的.rst 文件中的行更改为.. automodule:: ../MyMod.X 可以消除错误消息,尽管在我期望的目录中似乎没有生成任何内容,然后我在sphinx-autobuild 中收到错误消息。
如何让sphinx-autogen 阅读这些模块?
【问题讨论】:
-
我可以用 sphinx-autogen 重现错误。但是当我在 conf.py 中设置
autosummary_generate = True并运行 sphinx-build 时,它可以工作。
标签: python-sphinx