如何在Jython项目中创建基于Sphinx的文档?

7 投票
1 回答
2448 浏览
提问于 2025-04-16 11:26

我正在做几个使用Java编写的库的Jython项目。我想用Sphinx和它的自动文档功能来创建一些好的文档。但是当我尝试生成HTML文件时,出现了错误,因为自动文档找不到那些用Java写的库:

sphinx-build -b html -d _build/doctrees   . _build/html
Running Sphinx v1.0.5
loading pickled environment... done
building [html]: targets for 1 source files that are out of date
updating environment: 0 added, 1 changed, 0 removed
reading sources... [100%] index

/Users/myName/myJythonProject/doc/index.rst:14: (WARNING/2) 
autodoc can't import/find module 'myJythonProject', it reported error: 
"global name 'PoolManager' is not defined",
please check your spelling and sys.path

这里的PoolManager是一个Java类。

有没有人能帮我解决这个问题呢?

1 个回答

6

Sphinx可以用来为Jython项目编写文档,但autodoc这个功能对Java写的代码不适用。autodoc功能是用来导入和检查Python模块的,而Java类则不支持这个功能。

为Java实现autodoc(或者类似的功能)是有可能的,但需要有人来主动做这件事。可以看看Sphinx的作者Georg Brandl的这条评论:https://www.mail-archive.com/sphinx-dev@googlegroups.com/msg03162.html

我找到了一些关于一个2010年GSoC提案项目的信息,目的是为autodoc实现多语言支持。但根据这篇博客,这个项目并没有完成。开发者选择去做另一个GSoC项目。

sphinx-contrib库里没有任何与autodoc相关的内容。


更新

现在有一个新的Sphinx扩展叫javasphinx,看起来很有意思。我还没有使用过这个扩展,但根据文档,它可以从Java代码生成reST源文件:

javasphinx-apidoc工具是Java领域中与sphinx-apidoc工具相对应的。它可以用来从已经用Javadoc风格注释的Java源代码生成reST源文件。生成的reST会和手写的文档一起被Sphinx处理。

javasphinx还使用了另一个库,叫javalang

PyPI包:

撰写回答