如何在Jython项目中创建基于Sphinx的文档?
我正在做几个使用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包: