2017-04-24 70 views
1

我试图执行this question的答案之一。但是,我还没有成功,因为当我运行sphinx-autogen无法找到模块

> sphinx-autogen -o generated *.rst 

我得到的错误

无法导入“MyMod.X”:没有模块名为MyMod.X

失败进口 'MyMod.Y':没有名为MyMod.Y

模块

无法导入 'MyMod.Z':没有名为MyMod.Z

模块

在我的.rst文件,还有一个与线:

.. automodule :: MyMod.X

(以及类似的MyMod.YMyMod.Z)。

我在子目录docs中运行此操作。在包含docs的父目录中,还有一个包含__init__.py,X.py,Y.pyZ.py的子目录MyMod。在docs内的conf.py文件在import sys之后立即具有行sys.path.insert(0, os.path.abspath('../'))

我能找到的最接近的相关问题是this,但是那里的答案似乎表明它通过将'../'插入到我已经完成的路径中来解决。此外,sphinx-autobuild可以愉快地找到这些模块,所以我不认为这是问题。

有趣的是,转产我.rst文件是.. automodule:: ../MyMod.X摆脱了错误消息,但似乎没有任何在我期待的目录中生成的,然后我得到了sphinx-autobuild错误消息。

如何获得sphinx-autogen以读取这些模块?

+1

我可以用sphinx-autogen重现错误。但是当我在conf.py中设置'autosummary_generate = True'并运行sphinx-build时,它就可以工作。 – mzjn

回答

0

如果其他人有更好的答案,或者此请张贴,但这里的解释是什么,我了解我的问题

虽然sphinx-autogen给出错误信息,因为我一直在寻找的情况下,我试图让它创建的文件仍然被创建。虽然它找不到模块(事实上,它们是功能模块,而不是模块,所以它不会令人惊讶),但它仍能产生预期的输出。