【问题标题】:Documentation generator for python3 [closed]python3的文档生成器[关闭]
【发布时间】:2011-02-20 19:49:34
【问题描述】:

我最近有为我的小项目生成文档的冲动。我认为这会相当容易,因为我有一组很好的文档字符串。事实证明,python 3.1 中的整个过程要复杂得多。

这是我尝试过的:

  • epydoc:失败,因为它适用于 python 2。2to3 没有解决问题
  • pydoc:我找不到任何信息,您如何为自己的模块生成文档,看起来像是离线阅读 python 文档的服务器
  • sphinx:到目前为止,最有希望的是,我已经从他们的存储库中构建了它,但是它失败并显示了一个非常神秘的错误消息 (jinja2.exceptions.UndefinedError: b'b"\'sphinx.jinja2glue.idgen object\'没有属性\'next\'")

我的问题是:我现在该怎么办?是否有任何其他适用于 python3 的非商业文档生成器?

【问题讨论】:

  • 我认为 Sphinx 是要走的路,要解决这个问题,你可以在groups.google.com/group/sphinx-dev 上发帖提问,该软件的作者已阅读。
  • 好的,我发布了,我们会看看它是怎么回事;-)
  • 对于 Sphinx 感觉有点矫枉过正的简单项目,您可以尝试pdoc

标签: documentation python-3.x documentation-generation


【解决方案1】:

显然在 Jinja 中,X.next() 正在执行某些操作。在 Python 3 中是 next(x) 。这应该是一个简单的修复。

【讨论】:

  • 谢谢!尽管情况并非如此,但您的评论启发了我深入研究 sphinx 代码。在尝试了解 jinja2 的工作原理后,我发现在 build/lib/sphinx/jinja2glue.py 中,idgen 对象确实没有 next() 方法……它被命名为 __next__()。修复后一切正常!
  • @Wiesław Herr:是的,因为在 Python 3 下,网络应该被称为x.__next__,你应该用 next(x) 来调用它。所以不要重命名方法,改变调用,就像我上面说的那样。
  • 啊,现在我明白了它是如何工作的以及为什么 2to3 改变了它。所以你从一开始就在哪里 ;-) 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-23
  • 2011-02-19
  • 1970-01-01
  • 2012-10-02
  • 1970-01-01
  • 2010-11-14
  • 2012-10-10
相关资源
最近更新 更多