epydoc 属性错误: 'Text'对象没有 'data' 属性

7 投票
3 回答
3047 浏览
提问于 2025-04-16 21:35

我这两年没用过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这个项目是不是已经停止更新了?

3 个回答

0

对象可以和空值(也就是没有任何东西的意思)进行比较,这样就可以避免出现错误。

if object is None:
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
6

Epydoc这个工具已经很久没有更新了,最后一次发布的版本和现在的Python以及docutils不太兼容。不过,它还是一个有用的工具,只是需要一些修补。

这里有一些我在使用Epydoc为我的Python 2.7代码生成文档时用到的修补程序: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/packages/epydoc/ (这些修补程序是PLD-Linux的Epydoc包的一部分)。

我希望有人能接手这个代码,继续开发下去……

撰写回答