Sphinx autodoc在第三方软件包的ImportError上死亡

时间:2013-02-26 12:09:47

标签: python python-sphinx autodoc

有什么方法可以排除模块的导入部分,然后用sphinx-python记录它? 我有一个模块导入另一个包(其他不同的项目),然后sphinx给出了这个错误:

  

“””    在import_object中输入文件“/usr/local/lib/python2.7/dist-packages/Sphinx-1.1.3-py2.7.egg/sphinx/ext/autodoc.py”,第321行       导入(self.modname)     文件“/home/x/GitHub/project/mod_example1.py”,第33行,in       来自other_pck导入Klass,KlassStuff   ImportError:没有名为other_pck的模块   “”“

如果我评论调用/导入该软件包的模块中的导入部分,那么sphinx可以执行autodoc。 我尝试使用所有sphinx autodoc模块:autoclass,automodule等...但是一旦尝试导入其他软件包,结果总是一样的。

由于

1 个答案:

答案 0 :(得分:2)

你正在以错误的方式解决问题。解决问题的正确方法是让Sphinx了解您现有的其他软件包,因为autodoc功能必须导入Python软件包才能扫描源代码。如果没有解决所有依赖关系,就无法导入Python包,也无法从中挑选出源代码行,因为这就是Python的构建方式(*)

可能的解决方案

*)理论上你可以,但这超出了Sphinx和这个问题的范围