7

在过去的 2 年中,我没有使用过 epydoc,但我发现只需很少的努力就可以很方便地跟踪我的类和方法。

今天我安装了最新版本3.0.1,但出现此错误,四处搜索似乎没有提供解决方案。

Traceback (most recent call last):-] Parsing docstrings: pyramid.reques... 
  File "/home/neurino/apps/env/bin/epydoc", line 13, in <module>
    cli()
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/cli.py", line 965, in cli
    main(options, names)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/cli.py", line 757, in main
    exclude_parse=exclude_parse)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/docbuilder.py", line 275, in build_doc_index
    parse_docstring(val_doc, docindex, suppress_warnings)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/docstringparser.py", line 265, in parse_docstring
    api_doc.summary, api_doc.other_docs = api_doc.descr.summary()
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/markup/restructuredtext.py", line 179, in summary
    try: self._document.walk(visitor)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/docutils/nodes.py", line 137, in walk
    if child.walk(visitor):
  File "/home/neurino/apps/env/lib/python2.7/site-packages/docutils/nodes.py", line 129, in walk
    visitor.dispatch_visit(self)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/docutils/nodes.py", line 1604, in dispatch_visit
    return method(node)
  File "/home/neurino/apps/env/lib/python2.7/site-packages/epydoc/markup/restructuredtext.py", line 307, in visit_paragraph
    m = self._SUMMARY_RE.match(child.data)
AttributeError: 'Text' object has no attribute 'data'

epydoc项目死了吗?

4

3 回答 3

8

我在 epydoc 跟踪器上找到了一个补丁,无论如何它已经过时了,这部分解决了这个问题:

markup/restructuredtext.py
307c307,310
<                 m = self._SUMMARY_RE.match(child.data)
---
>                 try:
>                     m = self._SUMMARY_RE.match(child.data)
>                 except AttributeError:
>                     m = None
于 2011-07-15T10:14:25.477 回答
6

Epydoc 已经很久没有维护了,最后一个版本与当前的 Pyton 和 docutils 不太兼容。不过,它仍然是一个有用的工具,但需要一些补丁。

以下是我使用 Epydoc 为我的 Python 2.7 代码构建文档的一些补丁: http ://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/epydoc/ (它们是 PLD-Linux 的一部分Epydoc 包)。

我希望有人接管代码并继续开发……</p>

于 2011-07-15T11:07:12.430 回答
0

可以针对 null(即无)测试对象,以便不会发生异常。

if object is None:
于 2016-01-02T20:41:51.687 回答